更改 php 中特定 woocommerce 产品类别的每行列/产品数

问题描述 投票:0回答:3

我正在使用 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
3个回答
2
投票

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


    /*  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 是产品类别段。您可以根据您所需的类别标签进行更改。
  • 您需要将此代码添加到您的主题 function.php 中

0
投票

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

另一个每页显示产品正在工作

看来,

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; 
                }

快乐编码:)


0
投票

这可以覆盖特定类别的产品数量,只需替换函数中的类别和编号即可。

/* 设置特定类别的每页产品 */

add_filter( 'loop_shop_per_page', 'products_per_page_category');
    if (!function_exists('products_per_page_category')) {
        function products_per_page_category( $count ) {
            if( is_product_category( 'CATEGORY' ) ) { 
                return NUMBER;
            }else{
                return $count;
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.