三行代码轻松解决WooCommerce中的产品排序问题

Wordpress主题编辑器

在内容管理系统大行其道的今天,建立一个模块化的网站,已不再是难事。用Wordpress+WooCommerce便可以比较方便的建立一个电商网站。

通过WooCommerce上加载的各种主题,可以方便的构建不同风格的网上商城。商城里的各类商品,排列的顺序也很灵活,管理员可以方便的设置按更新时间排列,随机排列,销量排列等等。可是方便是方便,当一个商城里不同类别的产品,想采用不同的排列方式时,这就有一定难度了。

当然,我们可以在设置里,把排列方式改成自定义,再在每个类别的产品里,通过拖动,来改变其位置,可这正是一项费时费力的工作。因为,我们一般只是某几类产品想用一种排列方式,而另几类,用另一个排列方式。

其实,实现这个目标,并不非常困难,三行代码就可以解决。

我们在管理后台,在主题的编辑器里,找到万能的functions.php文件,就可以解决这个问题。

Wordpress主题编辑器
主题编辑器

functions.php是一个非常重要的核心程序,把代码加在这里,几乎每个页面打开时都会加载一次。在functions.php文件的编辑窗口加上下面的三行代码,就可以轻松的解决排序问题了:

三行代码
三行重要代码

我们来逐行分析一下,看似三行代码,其实就是两句话,一个是if条件语句,

//choose categories where default sorting will be changed

if (is_product_category( array( ‘category1’, ‘category2’, ‘category3’ ))) {

这里用一个数列来判断,是否是这几个条件的产品类别。

return ‘date’; // sort by latest

这个表示按时间顺序排列,也就是最新上新的会在最前面。除了date以外,常用的WooCommerce对应的排列方式如下:

popularity = “Sort by popularity”

rating = “Sort by average rating”

date = “Sort by latest”

price = “Sort by price: low to high”

price-desc = “Sort by price: high to low”

上面的代码里,其他的就按受欢迎程度排列了:return  ‘popularity’。至此上面的三行代码,也就没有啥神秘的了。

只是,有时我们并不需要array来区分多个类别,我们只有一个分类,要用特殊的排列方式。这样的话大部分代码还是相同的,只需要把第一句改成:

if (is_product_category( ‘category1’ )) {

就可以了。

三行代码,总是很简单的,大家都可以试试。

作者:他乡老王
链接:https://www.jianshu.com/p/75cde39a4317
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

类似文章