首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将自定义排序应用于WooCommerce产品循环

如何将自定义排序应用于WooCommerce产品循环
EN

Stack Overflow用户
提问于 2017-12-05 14:37:56
回答 1查看 993关注 0票数 0

我的客户有一个WooCommerce在线商店,目前显示他的产品(大约。600)按相反的时间顺序(最新的第一,最老的最后)。

问题是老产品没有销售,因为它们总是在页面底部,他的客户很少滚动到底部(很长的600种产品!)页面。

不幸的是,客户端不准备将产品分成类别或单独的页面。他还反对每次显示商店页面时随机启动的产品排序。

然而,他同意以下几点:

  1. 始终在页面顶部显示最新产品(我们已经使用post_meta‘_product_new’标记了这些产品);
  2. 将剩余产品分成两个块(最老的50%和最新的50%),并根据当前月份交替显示这些块--偶数个月最老的50%块优先,奇数个月最新的50%块优先。

重要的是,post_meta标记的产品总是在页面的顶部。

我认为应该可以使用“pre_get_post”钩子应用自定义产品排序:

代码语言:javascript
复制
add_action( 'pre_get_posts', 'custom_vtp_shop_order' );

function custom_vtp_shop_order($q){
    if ( ! $q->is_main_query() ) return;
    if (! is_admin() && (is_shop() || is_archive) ) {

        ...do the magic here...

    }

    remove_action( 'pre_get_posts', 'custom_vtp_shop_order' );
}

但我不知道怎么做。

这就是我要做的事:

  1. 第1块:使用post_meta‘_product’获取所有产品;
  2. 第2部分:获取所有其他产品并按顺序对它们进行排序(最新的、最老的);
  3. 中间分割块2,创建块3和块4;

4a。在偶数月份(二月、四月、六月等)按第一座、第三座、第四座订购我的产品;

4b。在个别月份(一月、三月、五月等)按第一座、第四座、第三座订购我的产品。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2017-12-05 20:15:48

听起来,您需要使用WP_Query进行三个单独的查询。

代码语言:javascript
复制
1st - products, filtered by '_product_new', sorted newest to oldest
2nd - products, sorted newest to oldest, limit to half of posts
3rd - products, sorted oldest to newest, limit to half of posts.

您很可能需要重写存档-Product.php。我觉得这是最简单的方法。代码将相当广泛,但我想不出任何其他方法,您会正确地这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47656181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档