You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WooCommerce代码实现指定多分类产品随机排序?

解决WooCommerce多分类产品随机排序问题

只需把单个分类的变量改成分类数组,再调整判断逻辑就能支持多个分类,修改后的代码如下:

function custom_catalog_ordering_args_8( $args ) {
  // 填写需要启用随机排序的分类slug或名称,多个分类放在数组里
  $target_categories = array('分类1的slug', '分类2的slug');

  // 判断当前是否是目标分类页面,不是则返回原参数
  if ( ! is_product_category($target_categories) ) return $args;

  // 设置产品随机排序
  $args['orderby'] = 'rand';

  // 保留原有的日期排序判断(如果不需要可以直接删除这段)
  if( $args['orderby'] == 'date ID' )
    $args['order'] = 'DESC';

  return $args;
}    

add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_catalog_ordering_args_8', 20, 1 );

核心修改点:

  • 把单个分类变量换成数组$target_categories,可添加任意数量的分类(优先用分类slug,比分类名称更稳定,避免名称修改后失效)
  • is_product_category()支持传入数组,会自动校验当前页面是否属于数组中的任一分类

额外提示:

  • 分类slug可以在WooCommerce后台的「产品分类」编辑页找到
  • 如果不需要原代码里的"最新上架"排序逻辑,直接删除那一段if( $args['orderby'] == 'date ID' )的代码即可,不影响随机排序功能

内容的提问来源于stack exchange,提问作者Deyv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:05:21