Woocommerce查看所有产品Link Pagination

时间:2017-09-25 18:21:04

标签: php wordpress woocommerce pagination

我试图找到一种在Woocommerce分页中创建查看全部按钮的方法。 所有其他来源似乎都已过时且无法正常工作。 目前发现一个source是最新的,但仍无效。

现在我有了这个:

if( isset( $_GET['showall'] ) ){ 
add_filter( 'loop_shop_per_page', create_function( '$cols', 'return -1;' ) ); 
}
else {
    add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 25;' ) );
}

并为pagination.php中的HTML链接添加了这个:

    echo '<li><a href="';
    echo curPageURL();
    echo '?showall=1">All</a></li>'; 

html链接正在显示,但它似乎并没有运行所有的功能视图。

我可能做错了吗?或者这种方法过时了吗?

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

在某些情况下,可能仍然支持create_function功能,但强烈建议不要这样做。它实际上是少数功能中的一个,当启用时会打开您的网站,导致许多黑客攻击漏洞,这就是为什么在以后的PHP版本中它已被弃用。我敢打赌你的主机已将其禁用,因此你所拥有的代码可能因此而无效。

快速谷歌我发现了如何执行你所说here的文档。现在根据你到目前为止进行一些修改,我试试这个:

add_filter('loop_shop_per_page', 'my_per_page_filter', 100);

function my_per_page_filter($cols) {
  return isset($_GET['showall']) ? -1 : $cols;
}

在上面的代码中,我使用了一些代码魔术来说明是否设置了$_GET['showall'],然后返回-1,否则$cols中的常规列数。我还将过滤器的优先级设置为100,因此希望它在其他过滤器之后运行,如果您发现此代码不起作用,则尝试更高的值,如99999.

希望这有帮助!