我正在运行WooCommercethis store.
虽然默认情况下是在一个页面上显示12种产品,但客户端要求使用“全部显示”按钮,以防止用户使用分页来访问其他产品。
是否有一个函数可以在当前页面上运行,该函数将重新运行循环,但会更改查询以提供更多的“每页帖子”?我对WooCommerce模板文件进行了一番探讨,但不清楚如何做到这一点。
我在考虑通过php考试GET
变量,并对其进行测试以确定是否运行修改后的查询,如(循环外):
<a href="<?php
echo get_permalink( $post->ID ) . "?showall=1";
?>">Show all</a>
然后在模板文件循环之前执行类似的操作
<?php if($_GET[\'showall\'] = 1){ //something here to modify the query (wp_query perhaps?? or a woocommerce filter) } ?>
//the loop as normal
我走对了吗?这是不是很容易通过这种方式实现。如能就如何实施提供任何指导,将不胜感激。
Edit:好的,我对WooCommerce模板进行了更多的挖掘。看起来像是archive-product.php
是我要覆盖的文件。
现在,我已经在我的主题函数中使用过滤器指定了每页的产品。php如下:
add_filter( \'loop_shop_per_page\', create_function( \'$cols\', \'return 12;\' ), 20 );
我在
archive-product.php
已复制到的文件
my theme folder/woocommerce
要覆盖默认值,请执行以下操作:
<?php if($_GET[\'showall\']==1){
add_filter( \'loop_shop_per_page\', create_function( \'$cols\', \'return 8;\' ), 30 );
} ?>
当我访问时
shop_page/?showall=1
筛选器无法执行。过滤器的功能。php似乎占据主导地位,尽管优先级较低。