我正在使用woocommerce的默认产品搜索,但搜索结果显示的结果如post不喜欢产品。我的搜索获取查询就像mydomainname/?s=men&post_type=product
意味着我的主题只是发帖,所以可以做什么来获得产品类型的结果。
任何帮助。
感谢
<div class="advance-product-search">
<form role="search" method="get" class="woocommerce-product-search" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<?php
$terms = get_terms( array(
'taxonomy' => 'product_cat',
'hide_empty' => true,
'parent' => 0,
) );
?>
<?php if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) : ?>
<div class="advance-search-wrap">
<?php $current = ( isset( $_GET['product_category'] ) ) ? absint( $_GET['product_category'] ) : ''; ?>
<select class="select_products" name="product_category">
<option value=""><?php esc_html_e( 'All Categories', 'wen-associate' ); ?></option>
<?php foreach ( $terms as $cat ) : ?>
<option value="<?php echo esc_attr( $cat->term_id ); ?>" <?php selected( $current, $cat->term_id ); ?> ><?php echo esc_html( $cat->name ); ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
<div class="advance-search-form">
<input type="search" id="woocommerce-product-search-field-<?php echo isset( $index ) ? absint( $index ) : 0; ?>" class="search-field" placeholder="<?php echo esc_attr__( 'Search products…', 'wen-associate' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
<input type="submit" value="" />
<input type="hidden" name="post_type" value="product" />
</div><!-- .advance-search-form -->
</form><!-- .woocommerce-product-search -->
答案 0 :(得分:0)
您可以在your function.php中添加此功能
add_action( 'pre_get_posts', 'search_woocommerce_only' );
function search_woocommerce_only( $query ) {
if( ! is_admin() && is_search() && $query->is_main_query() ) {
$query->set( 'post_type', 'product' );
}
}