我试图找到一种在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链接正在显示,但它似乎并没有运行所有的功能视图。
我可能做错了吗?或者这种方法过时了吗?
非常感谢帮助。
答案 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.
希望这有帮助!
幸