【发布时间】:2021-04-13 20:43:31
【问题描述】:
我正在使用店面子主题构建 WooCommerce 商店。在我的商店页面 (archive-product.php) 中,我使用以下代码来展示产品:
<?php
$filterArray = explode("/", "http://" . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]);
if(count($filterArray)>5) {
echo do_shortcode('[products category="' . $filterArray[count($filterArray)-2] . '" per_page="30" limit="30" columns="3" paginate="true"]');
}
else {
echo do_shortcode('[products per_page="30" limit="30" columns="3" paginate=true]');
}
?>
当我没有将 category 属性传递给简码时,一切都按预期工作。但是当我添加category时,我的页面显示不是30,而是每页只有2个产品。将products 更改为product category 根本不起作用。这种奇怪行为的原因可能是什么?
编辑:我的代码有些混乱,在functions.php 中找到了以下函数:
function modify_product_cat_query( $query ) {
if (!is_admin() && $query->is_tax("product_cat")){
$query->set('posts_per_page', 2);
}
}
add_action( 'pre_get_posts', 'modify_product_cat_query' );
我以为我终于找到了问题,但即使我删除了那个 sinppet 或将值从 2 更改为 30,类别页面仍然只显示两个产品...
【问题讨论】:
-
您能否确认有多少产品分配给该类别,因为当我测试您的代码时,它对我来说可以正常工作。
-
@GautamGolakiya 是的,我有 60 多个产品,它们分为 30 多个页面,每个页面有两个产品。
标签: php wordpress woocommerce e-commerce