如何在产品画廊下方显示WooCommerce追加销售产品?已有相关产品代码
WooCommerce 追加销售产品自定义显示实现方案
你可以参照相关产品的自定义逻辑,针对追加销售产品做类似设置,以下是两种适配方案:
方式一:和现有相关产品代码逻辑对齐(重写输出函数)
// 移除默认追加销售产品的输出位置 remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); // 将追加销售产品绑定到目标位置(与你设置相关产品的位置一致) add_action( 'woocommerce_before_single_product_summary', 'woocommerce_upsell_display', 25 ); // 自定义追加销售产品的显示参数 function woocommerce_upsell_display() { $args = array( 'posts_per_page' => 4, 'columns' => 4, 'orderby' => 'rand' ); woocommerce_upsell_display( apply_filters( 'woocommerce_upsell_display_args', $args ) ); }
方式二:使用过滤器修改参数(WooCommerce 最佳实践)
这种方式无需重写输出函数,仅通过过滤器调整参数,更灵活且保留默认逻辑:
// 移除默认追加销售产品的输出位置 remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); // 将追加销售产品绑定到目标位置 add_action( 'woocommerce_before_single_product_summary', 'woocommerce_upsell_display', 25 ); // 调整追加销售产品的显示参数 add_filter( 'woocommerce_upsell_display_args', 'custom_upsell_args' ); function custom_upsell_args( $default_args ) { // 覆盖默认参数 $default_args['posts_per_page'] = 4; $default_args['columns'] = 4; $default_args['orderby'] = 'rand'; return $default_args; }
关键注意点
- 追加销售的默认输出动作优先级是
15,和相关产品的20不同,移除时要对应正确数值 - 可根据布局需求调整
add_action里的优先级(比如示例中的25),确保显示位置符合预期 - 参数可按需修改,比如
orderby可选值还有title、date等
内容的提问来源于stack exchange,提问作者celilyilmaz
相关产品推荐
相关产品推荐

