带有类别选择的WooCommerce搜索表单

时间:2016-08-02 作者:sakarya

我正在尝试为基于woocommerce的网站构建一个高级搜索表单。

找到此答案(https://wordpress.stackexchange.com/a/184186/51376) 并添加了所有代码。但它不起作用。

功能。php

// advanced search functionality
function advanced_search_query($query) {

if($query->is_search()) {
    // category terms search.
    if (isset($_GET[\'product_cat\']) && !empty($_GET[\'product_cat\'])) {
        $query->set(\'tax_query\', array(array(
            \'taxonomy\' => \'product_cat\',
            \'terms\' => array($_GET[\'product_cat\']) )
        ));
    }    
    return $query;
}
}
add_action(\'pre_get_posts\', \'advanced_search_query\', 1000);
搜索表单;

<form role="search" method="get" class="woocommerce-product-search" action="<?php echo esc_url( home_url( \'/\'  ) ); ?>">
<div class="form-group">
    <div class="search-form">
        <label class="screen-reader-text" for="woocommerce-product-search-field"><?php _e( \'Search for:\', \'woocommerce\' ); ?></label>
        <input type="search" id="woocommerce-product-search-field" class="search-field" placeholder="<?php echo esc_attr_x( \'Search Products&hellip;\', \'placeholder\', \'woocommerce\' ); ?>" value="<?php echo get_search_query(); ?>" name="s" title="<?php echo esc_attr_x( \'Search for:\', \'label\', \'woocommerce\' ); ?>" />
    </div>
    <?php wp_dropdown_categories( \'name=product_cat&hierarchical=1&taxonomy=product_cat&class=category-select&show_option_all=Tüm Kategoriler\' ); ?>
    <div class="search-submit">
        <input type="submit" value="<?php echo esc_attr_x( \'Search\', \'submit button\', \'woocommerce\' ); ?>" />
    </div>
</div>
<input type="hidden" name="post_type" value="product" />
</form>

1 个回复
SO网友:pallavi

您可以尝试以下代码。下面的代码显示了搜索框和woocommerce产品类别。它还将显示所选类别。

   <form name="myform" method="GET" action="<?php echo esc_url(home_url(\'/\')); ?>">

    <?php if (class_exists(\'WooCommerce\')) : ?>
  <?php 
  if(isset($_REQUEST[\'product_cat\']) && !empty($_REQUEST[\'product_cat\']))
  {
   $optsetlect=$_REQUEST[\'product_cat\'];
  }
 else{
  $optsetlect=0;  
  }
         $args = array(
                    \'show_option_all\' => esc_html__( \'All Categories\', \'woocommerce\' ),
                    \'hierarchical\' => 1,
                    \'class\' => \'cat\',
                    \'echo\' => 1,
                    \'value_field\' => \'slug\',
                    \'selected\' => $optsetlect
                );
          $args[\'taxonomy\'] = \'product_cat\';
          $args[\'name\'] = \'product_cat\';              
          $args[\'class\'] = \'cate-dropdown hidden-xs\';
          wp_dropdown_categories($args);

   ?>
  <input type="hidden" value="product" name="post_type">
<?php endif; ?>
               <input type="text"  name="s" class="searchbox" maxlength="128" value="<?php echo get_search_query(); ?>" placeholder="<?php esc_attr_e(\'Search entire store here...\', \'woocommerce\'); ?>">

    <button type="submit" title="<?php esc_attr_e(\'Search\', \'woocommerce\'); ?>" class="search-btn-bg"><span><?php esc_attr_e(\'Search\',\'woocommerce\');?></span></button>
  </form>

相关推荐

在WP搜索表单中是否有类似`wp_Dropdown_Categories()`的输入复选框选项?

我有自定义的帖子类型,当前正在使用wp_dropdown_categories() 在WP搜索表单中的功能,以便人们能够按薪资级别和工作类型进行筛选。是否有一个等效函数,以便用户可以使用输入复选框元素而不是<select> 元素,以便他们在进行搜索时可以选择多个工作类型或薪资水平?我似乎在开发者文档中找不到任何东西。我正在寻找的是允许复选框替换使用下面代码中的select选项的下拉元素的东西。<form method="get" action="<?p