从常规展示循环中删除所有特色产品[WooCommerce]

时间:2016-09-27 作者:AlastairNixon

我已经设置了一个自定义循环,在相关类别页面的顶部显示特色产品。

但现在我想从下面的常规循环中删除特色产品,即使用标准woocommerce代码显示产品,

任何帮助都将不胜感激

http://onthesquareauctions.com/index.php/product-category/emporium/furniture/chairs-emporium/enter image description here

2 个回复
SO网友:Benoti

使用pre\\u get\\u posts过滤器从产品循环中删除粘贴的产品。

add_action( \'pre_get_posts\', \'exclude_stycky_product\' );

function exclude_sticky_product(){
    // target only the main query
    if ( ! is_admin() && $query->is_main_query()  ) {
         $query->set(\'ignore_sticky_posts\');
         $query->set(\'meta_value\', \'1\');
    }
}
希望对你有帮助!

SO网友:jameshwart lopez

我喜欢Benoti的答案,你可以做的另一件事就是使用woocommerce\\u product\\u查询挂钩。

<?php

/**
 *  Add in your themes functions.php    
 *  Exclude featured product in the main product loop
 */
add_action( \'woocommerce_product_query\', function ($query) {

    if ( ! is_admin() && $query->is_main_query() ) {
        // Not a query for an admin page.
        // It\'s the main query for a front end page of your site.

        if ( is_product_category() ) {
            // It\'s the main query for a product category archive.

            $tax_query = (array) $query->get( \'tax_query\' );

            // Tax query to exclude featured product 
            $tax_query[] = array(
                \'taxonomy\' => \'product_visibility\',
                \'field\'    => \'name\',
                \'terms\'    => \'featured\',
                \'operator\' => \'NOT IN\', 
            );


            $query->set( \'tax_query\', $tax_query );
        }

    }

} ); 
见我关于这个话题的完整笔记https://jameshwartlopez.com/plugin/remove-any-product-that-is-featured-from-regular-display-loop/

相关推荐

按ASC或DESC对wp_Dropdown_Categories进行排序

我有一个在标题中搜索的网站(anunciaya.es)。我想按名称ASC/DESC订购wp\\U下拉列表\\U类别,但它不适合我。\'排序依据\'=>;\'“名称”和“顺序”=>;\'DESC不适合我。有什么解决方案吗?以下是PHP代码:wp_dropdown_categories( array( \'show_option_none\' => $cat_text, \'option_none_value\' => \'\', \'ta