我正在尝试为基于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…\', \'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>
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>