Woocommerce搜索结果显示发布结果而不是产品结果

时间:2018-03-06 06:55:32

标签: wordpress woocommerce

我正在使用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&hellip;', 'wen-associate' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
        <input type="submit" value="&#xf002;" />
        <input type="hidden" name="post_type" value="product" />
    </div><!-- .advance-search-form -->

</form><!-- .woocommerce-product-search -->

1 个答案:

答案 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' );
  }
}