【问题标题】:sort products for specific category page woocommerce为特定类别页面 woocommerce 排序产品
【发布时间】:2021-07-05 08:14:19
【问题描述】:

我想对特定书籍类别页面 woocommerce 的产品进行排序,但我无法做到这一点 以下是我已应用但不适用于我的代码

/*

add_filter('woocommerce_default_catalog_orderby','custom_catalog_ordering_args_func',220, 1);

   function custom_catalog_ordering_args_func($sortby)
   {
     $product_category = 'book'; // <== HERE define product category slug 

    if (! is_product_category($product_category)) {
        return;
    }else{
        return 'date';
    }
   
}

*/

【问题讨论】:

  • 所以您想按日期对图书类别的产品进行排序,并为其他所有类别使用默认值?
  • 是的,你是对的
  • 让我知道方法,即使可以通过在 woocommerce 文件中编写硬代码来做到这一点

标签: wordpress woocommerce categories


【解决方案1】:

使用此代码

add_filter('woocommerce_default_catalog_orderby', 'sort_by_date', 10, 1);
function sort_by_date($sortby){

    if (! is_product_category('book')) {
        return 'date';
    }
    return;
}

【讨论】:

  • 真的吗?因为你使用的是 else 而我不使用它。你试过我的版本吗?
  • 我想在 is_product_category('book') 时按日期顺序排列产品,所以我认为您的代码仍然不正确,但让我改正一下
  • 我的代码有什么不妥之处?什么时候还书,否则还书
【解决方案2】:

您可以使用woocommerce_default_catalog_orderby 动作挂钩。检查下面的代码。

add_filter( 'woocommerce_default_catalog_orderby', 'change_catalog_orderby_for_category' );
function change_catalog_orderby_for_category( $sort_by ) {
    if( is_product_category('book') ) { 
        return 'date';
    }
    return $sort_by;
}

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 2018-09-27
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2013-08-11
    • 2022-01-24
    相关资源
    最近更新 更多