php 更改在WooCommerce 'xyz'类别页面上显示的产品数量

ovfsdjhp  于 2022-10-30  发布在  PHP
关注(0)|答案(4)|浏览(153)

我有19个项目在“xyz”类别目前,但我只能看到他们中的5个在同一时间,并显示分页,我不想分页。
有没有办法让它超过5个项目显示在您的第一页上的xyz类别?
我在模板的function.php中添加了以下代码

add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 10;' ), 19 );

但它仍然展示5种产品。

1wnzp6jl

1wnzp6jl1#

截至php 7.2 create_functiondepricated .下面的过滤器是可用的,以改变产品的数量在存档页(我只会建议使用,如果它是不同的,从您的WordPress设置下设置〉阅读)

/**
  * WC: change products per page
  * @return int
  */
function so22835795_loop_shop_per_page() {
    return -1; //return any number, -1 === show all
};
add_filter('loop_shop_per_page', 'so22835795_loop_shop_per_page', 10, 0);
8ehkhllq

8ehkhllq2#

这可以在 Jmeter 板上“设置”选项卡的Reading Settings部分中进行更改。
选项Blog pages show at most控制可以看到的产品数量。将其更改为19将允许显示所有19个产品。
编辑

add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 19;' ), 20 );

另一个编辑:
在woocommerce/includes/class-wc-query.php页面的第365行有以下内容

$q->set( 'posts_per_page', $q->get( 'posts_per_page' ) ? $q->get( 'posts_per_page' ) : apply_filters( 'loop_shop_per_page', get_option( 'posts_per_page' ) ) );

将其更改为:

$q->set( 'posts_per_page', $q->get( 'posts_per_page' ) ? $q->get( 'posts_per_page' ) : apply_filters( 'loop_shop_per_page', '19') );
lvjbypge

lvjbypge3#

将此代码添加到主题的function.php文件中

add_filter('loop_shop_per_page', create_function('$cols', 'return 19;'));

这对我很有效Thakns

gwo2fgha

gwo2fgha4#

loop_shop_per_page过滤器对我不起作用,因为主题覆盖了它。所以我使用了woocommerce_product_query过滤器,如下所示:

<?php
add_action( 'woocommerce_product_query', 'so22835795_woocommerce_products_per_page', 1, 50 );

function so22835795_woocommerce_products_per_page( $query ) {
    if ( $query->is_main_query() ) {
        $query->set( 'posts_per_page', '5' );
    }
}

相关问题