【问题标题】:change number of columns/ products per row for specific woocommerce product category in php更改 php 中特定 woocommerce 产品类别的每行列数/产品数
【发布时间】:2018-03-23 19:05:57
【问题描述】:

我正在使用 Woocommerce 3.3.3 并尝试更改特定产品类别而不是其他产品类别的列数。我尝试了几个代码选项,但它们都将列中的更改应用于所有类别。这是我尝试过的一件事。

/* change columns to 1 for newsletter issues prod cat*/

add_filter('loop_shop_columns', 'loop_columns');
if (!function_exists('loop_columns')) {
    function loop_columns() {
        if ( is_product_category('newsletter-issues')) {
            return 1;
        } else { // for other archive pages and shop page
            return 4;
        }
    }
}

【问题讨论】:

    标签: woocommerce product


    【解决方案1】:

    使用波纹管功能,您可以设置产品列表列和每个类别页面的产品数量。

    
        /*  Set product columns for specific category */
    
        add_filter('loop_shop_columns', 'loop_columns'); 
        if (!function_exists('loop_columns')) {
            function loop_columns() {
                if ( is_product_category('a')) {
                    return 3;
                } else if ( is_product_category('c')) {
                    return 2;
                }else{
                    return 4;   
                }
            }
        }
    
        /* Set product per page for specific category */
    
        add_action( 'woocommerce_product_query', 'cdx_woocommerce_products_per_page', 1, 50 );
        function cdx_woocommerce_products_per_page( $query ) {
    
            if( $query->is_main_query() && isset($query->query['product_cat'])){
    
                switch($query->query['product_cat']){
    
                    case 'a':
                        $query->set( 'posts_per_page', '3' );
                    break;
                    case 'c':
                        $query->set( 'posts_per_page', '2' );
                    break;
                    default:    
                        $query->set( 'posts_per_page', '4' );
                }
    
            }
        }
    
    • 这里 ac 是产品类别信息。您可以根据需要的类别 slug 进行更改。
    • 你需要在你的主题function.php中添加这段代码

    【讨论】:

    • 你检查解决方案了吗?如果您遇到有关上述解决方案的任何问题,请告诉我。我已经在我的本地服务器上测试了它,它在那里工作。
    【解决方案2】:

    根据@Codextent 代码,在 特定类别的产品列 不起作用,我认为这是由 woocommerce 新版本引起的。目前我正在使用 5.0 版本的 woocoomerce。

    其他每页显示产品正在工作

    看来,

    if ( is_product_category('a')) {
                return 3;
            } else if ( is_product_category('c')) {
                return 2;
            }else{
                return 4;   
            }
    

    为了工作,把上面的代码改成这个

                    if ( has_term( 'a', 'product_cat' ) ) {
                    return 4; // 4 products per row
                    }else{
                        return 2; 
                    }
    

    快乐编码:)

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多