Wordpress WooCommerce过滤产品系列

Wordpress WooCommerce过滤产品系列,wordpress,woocommerce,Wordpress,Woocommerce,例如,我有两个变体,“from_year”和“Toll_year”,如何在产品归档页面中按范围筛选产品 如果要调用此url,将只获取与变量相等的产品,但需要从2005年开始进行和直到2005年,您需要进行日期查询。这是一个很好的教程,这是关于WP\u Query的法典 您还需要筛选以添加新的查询变量,并修改基于新查询变量检索的帖子 有了所有这些参考资料,下面是我如何做到这一点的尝试 // Add query vars for filtering by years function so_3371

例如,我有两个变体,“from_year”和“Toll_year”,如何在产品归档页面中按范围筛选产品


如果要调用此url,将只获取与变量相等的产品,但需要从2005年开始进行
直到2005年,您需要进行日期查询。这是一个很好的教程,这是关于
WP\u Query
的法典

您还需要筛选以添加新的查询变量,并修改基于新查询变量检索的帖子

有了所有这些参考资料,下面是我如何做到这一点的尝试

// Add query vars for filtering by years
function so_33714675_add_vars($query_vars) {
    $query_vars[] = 'from_year';
    $query_vars[] = 'until_year';
    return $query_vars;
}
add_filter( 'query_vars', 'so_33714675_add_vars' );

// Filter product arvhice if query vars are present
function so_33714675_pre_get_posts($query) {
    if ( !is_admin() && is_shop() && $query->is_main_query() ) {

        $from_year = get_query_var('from_year');
        $until_year = get_query_var('until_year');

        $date_query = array();

        if( ! empty( $from_year ) ){
            $date_query['after'] = array(
                'year'      => $from_year,
            );
        } 

        if( ! empty( $until_year ) ){
            $date_query['before'] = array(
                'year'      => $until_year,
            );

        } 

        // order by date
        if( ! empty( $date_query ) ){
             set_query_var( 'orderby', 'date' );
             set_query_var( 'order', 'ASC' );

             $date_query['inclusive'] = true;
             set_query_var( 'date_query', array( $date_query ) );

        }
    }
}
add_action( 'pre_get_posts', 'so_33714675_pre_get_posts' );

请记住,这并没有经过充分测试。我99%肯定这是正确的方法,但它可能需要一些调整

您需要日期查询。这是一个很好的教程,这是关于
WP\u Query
的法典

您还需要筛选以添加新的查询变量,并修改基于新查询变量检索的帖子

有了所有这些参考资料,下面是我如何做到这一点的尝试

// Add query vars for filtering by years
function so_33714675_add_vars($query_vars) {
    $query_vars[] = 'from_year';
    $query_vars[] = 'until_year';
    return $query_vars;
}
add_filter( 'query_vars', 'so_33714675_add_vars' );

// Filter product arvhice if query vars are present
function so_33714675_pre_get_posts($query) {
    if ( !is_admin() && is_shop() && $query->is_main_query() ) {

        $from_year = get_query_var('from_year');
        $until_year = get_query_var('until_year');

        $date_query = array();

        if( ! empty( $from_year ) ){
            $date_query['after'] = array(
                'year'      => $from_year,
            );
        } 

        if( ! empty( $until_year ) ){
            $date_query['before'] = array(
                'year'      => $until_year,
            );

        } 

        // order by date
        if( ! empty( $date_query ) ){
             set_query_var( 'orderby', 'date' );
             set_query_var( 'order', 'ASC' );

             $date_query['inclusive'] = true;
             set_query_var( 'date_query', array( $date_query ) );

        }
    }
}
add_action( 'pre_get_posts', 'so_33714675_pre_get_posts' );

请记住,这并没有经过充分测试。我99%肯定这是正确的方法,但它可能需要一些调整

你是在问如何为链接创建url还是如何获取术语组合?获取术语组合?你是在问如何为链接创建url或如何获取术语组合?获取术语组合。我不需要按日期范围筛选帖子,但这可能会有所帮助,谢谢。我需要按变量/属性范围筛选电子商务产品。我看到您已编辑了您的问题以使其更清楚。但是现在它和以前完全不同了。在未来,请尽量有最准确的问题可能。嗨,我不需要筛选日期范围的文章,但这可能会有所帮助,谢谢。我需要按变量/属性范围筛选电子商务产品。我看到您已编辑了您的问题以使其更清楚。但是现在它和以前完全不同了。今后,请尽量提出最准确的问题。