【问题标题】:Woocommerce View all Products Link PaginationWoocommerce 查看所有产品链接分页
【发布时间】:2017-09-25 18:21:03
【问题描述】:

我正在尝试找到一种在 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 链接正在显示,但似乎并未全部运行函数视图。

我可能做错了什么吗?还是这种方法已经过时了?

非常感谢您的帮助。

【问题讨论】:

    标签: php wordpress woocommerce pagination


    【解决方案1】:

    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。

    希望这会有所帮助!

    柯达

    【讨论】:

    • 嗯,我测试了你的代码没有成功。我相信我在调用该函数时可能会遇到一些问题。我正在尝试 ?showall=1 和 ?showall=-1 的后缀似乎不起作用。如果您想test,请点击这里的网站链接。在页面底部,您可以找到分页和查看全部链接。对不起,我对 php 很陌生,通常我只是接触 wordpress 的 CSS/HTML。
    • 看起来您使用的是高级主题,这意味着这里没有人可以在不付费的情况下深入研究代码。从我可以看到的主题 Flatsome 对产品使用 ajax 加载器,这意味着普通的 woocommerce 钩子不起作用,您需要联系主题作者寻求建议。
    • 现在可以使用了!我之前在 pagination.php 中添加了所有代码。我尝试在 function.php 中对其进行测试,并且由于某些奇怪的原因它现在可以正常工作。也许在 pagination.php 中它无法检测到 loop_shop_per_page?谢谢柯达!没有你的帮助是不可能做到的
    • 很高兴有帮助:)
    猜你喜欢
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2014-04-23
    • 1970-01-01
    • 2020-01-03
    • 2020-10-20
    • 1970-01-01
    相关资源
    最近更新 更多