如何通过PHP让WooCommerce相关产品插件按录入顺序展示?
你可以通过添加以下PHP代码到主题的functions.php文件(或自定义代码插件),实现相关产品按menu_order(产品录入时设置的特定顺序)展示:
// 覆盖WebToffee相关产品的排序依据 add_filter( 'wt_related_products_orderby', 'custom_wt_related_products_orderby', 10, 1 ); function custom_wt_related_products_orderby( $orderby ){ return "none"; }; // 设置相关产品按menu_order排序 add_filter( 'wt_related_products_order', 'custom_wt_related_products_order', 10, 1 ); function custom_wt_related_products_order( $order ){ return 'menu_order'; };
代码说明:
wt_related_products_orderby过滤器:返回none是为了禁用插件默认的排序逻辑,让插件使用我们指定的排序字段。wt_related_products_order过滤器:指定排序字段为menu_order,这个字段对应产品编辑页面「高级」选项卡中的「菜单顺序」值,数值越小的产品会排在越前面。
注意事项:
- 若使用主题的
functions.php,建议使用子主题,避免主题更新时代码被覆盖;也可以用Code Snippets这类插件来管理自定义代码,更安全。 - 确保插件版本为1.4.6,不同版本的钩子名称可能存在差异。如果代码不生效,可以打开插件源代码,搜索
apply_filters相关的排序钩子(比如搜索orderby或order关键词),确认正确的钩子名称。
内容的提问来源于stack exchange,提问作者user3102556
相关产品推荐
相关产品推荐

