显示每页产品下拉列表

时间:2020-07-09 作者:Mikebb

所以我有一个wordpress woocommerce网站,我想在页码下添加一个按钮(你称之为分页吗?)因此,用户可以自己选择每页要查看多少产品,即20、40、80等。

我希望它位于页码下方的底部,我尝试了一种解决方案,将下拉列表保留在顶部,靠近其显示的位置;显示产品1-20"E;不是我想要的地方。

有什么想法吗?给我指一个关于这个的线程或教程?

感谢阅读!

迈克

我喜欢的例子https://www.funko.com/shop (见下图)

1 个回复
最合适的回答,由SO网友:Tony Djukic 整理而成

如果我正确理解了你的评论,那么解决方法很简单。在StackOverflow答案的顶部有一行:

add_action( \'woocommerce_before_shop_loop\', \'ps_selectbox\', 25 );
该行所做的是获取您创建的函数(ps_selectbox) 它把它挂在woocommerce_before_shop_loop 行动挂钩。WooCommerce中到处都是这些操作挂钩,专门用于此目的,因此我们可以添加自己的功能和更改,而无需编辑其核心代码。

所以如果你想用StackOverflow的答案解决的唯一问题(https://stackoverflow.com/a/55292815) 要更改下拉列表的显示位置,则只需更改第一行:

add_action( \'woocommerce_after_shop_loop\', \'ps_selectbox\', 5 );
有两件事发生了变化。1) 我将操作更改为woocommerce_after_shop_loop, 这将使其显示在产品下方。2) 我将add\\u操作的优先级更改为5 而不是25.

我更改了优先级,因为如果我们去查看默认值archive-product.php 作为WooCommerce的一部分捆绑的模板,我们看到:

/**
 * Hook: woocommerce_after_shop_loop.
 *
 * @hooked woocommerce_pagination - 10
 */
do_action( \'woocommerce_after_shop_loop\' );
在评论中,它告诉我们woocommerce_pagination 正被(WooCommerce)卷入同样的行动中,其优先级为10.

所以通过添加函数ps_selectbox5 它出现在内置WooCommerce分页之前。

如果希望它在woocommerce分页之后出现,可以将优先级值更改为1520. 您可以决定是否要以5或10的增量跳转。

如果你通过archive-product.php 您会注意到,所有动作挂钩都列出了已经挂接到其中的其他函数,优先级间隔为10秒,如下所示:

/**
 * Hook: woocommerce_before_shop_loop.
 *
 * @hooked woocommerce_output_all_notices - 10
 * @hooked woocommerce_result_count - 20
 * @hooked woocommerce_catalog_ordering - 30
 */
这是WooCommerce有意做到的,这样您/其他开发人员就可以在默认的WooCommerce功能之间插入自己的功能。它们在功能挂钩之间留下9个点,供您自己挂钩。