WooCommerce URL参数:设置limit=3无法仅显示前3个商品求助
解决方法
默认商品列表页(shop)通常不会直接识别limit这个URL参数,你可以通过添加自定义代码实现需求:
- 在主题的
functions.php文件或自定义插件中插入以下代码:
add_action( 'pre_get_posts', 'custom_limit_shop_products' ); function custom_limit_shop_products( $query ) { // 仅对前端商品列表的主查询生效 if ( ! is_admin() && $query->is_main_query() && is_shop() ) { // 检测URL中是否存在合法的limit参数 if ( isset( $_GET['limit'] ) && is_numeric( $_GET['limit'] ) ) { $limit = intval( $_GET['limit'] ); // 设置商品显示数量 $query->set( 'posts_per_page', $limit ); } } }
- 保存代码后重新访问
../shop/?orderby=date&limit=3,即可看到按日期排序的前3个商品。
额外注意事项:
- 确认
orderby=date参数本身正常生效(你已验证此点) - 如果是自定义商品列表页,需将
is_shop()替换为对应页面的判断条件(比如is_page('自定义页面slug')) - 建议使用子主题或自定义插件添加代码,避免主题更新时丢失修改
内容的提问来源于stack exchange,提问作者CWLocal
相关产品推荐
相关产品推荐

