首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为产品标签添加产品过滤器

为产品标签添加产品过滤器
EN

Stack Overflow用户
提问于 2018-09-14 02:45:09
回答 1查看 199关注 0票数 0

有什么建议吗?如何在woocommerce网站的主页上添加直接实现的产品标签过滤器?我有困难在使用搜索和过滤器插件的product-tag过滤器。

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 03:18:39

您可以使用pre_get_query filter for MainQuery Wordpress:

代码语言:javascript
复制
function modify_query($query) {
  if( ! is_admin() && $query->is_main_query() && $query->query_vars['post_type'] == 'product') {

    if( isset( $_GET['tag_product'] ) ) {

      $query->set( 'tax_query', array (
        array(
          'taxonomy' => 'product_tag',
          'field'    => 'term_id',
          'terms'    => absint( $_GET['tag_product'] ),
        )
      ));

    }
  }
}

add_action( 'pre_get_posts', 'modify_query' );

Html产品标签列表中的下拉列表:

代码语言:javascript
复制
<label><?php _e('Tags'); ?></label>
<form action="<?php bloginfo('url'); ?>/" method="get">
    <div>
        <?php
        $args = array(
            'taxonomy' => 'product_tag', // Taxonomy to return. Valid values are 'category', 'post_tag' or any registered taxonomy.
            'show_option_none' => 'Select tag',
            'show_count' => 1,
            'orderby' => 'name',
            'value_field' => 'slug',
            'echo' => 0,
            'name' => 'tag_product'
        );
        $select = wp_dropdown_categories( $args );
        $select = preg_replace("#<select([^>]*)>#", "<select$1 onchange='return this.form.submit()'>", $select);
        echo $select;
        ?>
        <noscript><div><input type="submit" value="Filter" /></div></noscript>
    </div>
</form>

请根据您的项目更改表单中的操作属性

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52320010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档