You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于WooCommerce中loop_shop_per_page过滤器的钩子位置问询

关于WooCommerce loop_shop_per_page 过滤器的详细说明

嘿,很高兴看到你已经在靠loop_shop_per_page过滤器搞定店铺分页的自定义了——这个钩子确实是WooCommerce里调整商品列表每页数量的核心工具!

你找不到它的位置很正常,因为它不在模板文件里,而是藏在WooCommerce的核心查询类中:

  • 具体文件路径:woocommerce/includes/class-wc-query.php
  • 在这个文件里,你能找到WC_Query类的get_loop_shop_per_page()方法,里面就是这个过滤器的定义,代码大概是这样的:
public function get_loop_shop_per_page() {
    return apply_filters( 'loop_shop_per_page', get_option( 'posts_per_page' ) );
}

这个方法的作用是:在渲染商品循环(店铺首页、商品分类页、标签页等)时,WooCommerce会调用它来获取每页要显示的商品数量,默认值是WordPress后台设置的posts_per_page(文章每页数量),而通过这个过滤器,我们可以轻松覆盖这个默认值。

额外的用法小提示

除了固定设置每页数量,你还可以根据不同页面动态调整,比如给特定分类设置不同的分页数量:

add_filter( 'loop_shop_per_page', 'custom_shop_per_page_by_category', 20 );
function custom_shop_per_page_by_category( $default_per_page ) {
    // 给"数码产品"分类设置每页16个商品
    if ( is_product_category( 'digital-products' ) ) {
        return 16;
    }
    // 店铺首页设置每页8个
    elseif ( is_shop() ) {
        return 8;
    }
    // 其他页面保留默认值
    return $default_per_page;
}

需要注意的是,这个过滤器只影响前端商品列表的分页数量,不会改变后台商品管理页面的显示数量哦。

内容的提问来源于stack exchange,提问作者Rudy Duchê

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:12:33