找回密码
 免费注册

WordPress中通过meta_value排序:按浏览量排序的实现方法

[复制链接]
admin 发表于 2021-1-16 03:58:11 | 显示全部楼层 |阅读模式
如果你自己开发WordPress,就会对WordPress的post meta非常熟悉,但是meta信息和post信息不在同一个数据库表中,因此无法简单的按照以前的方法进行排序。

本文通过按浏览量排序这个实例来讲解按meta值,也就是meta_value,来排序的方法。

我们要列出文章列表,要使用query_posts(或$WP_Query),我们做如下代码:
  1. query_posts(
  2.   array(
  3.     'meta_key' => 'views',
  4.     'orderby' => 'meta_value_num',
  5.     'order' => 'DESC'
  6.   )
  7. );
复制代码

总结:mate_key不可少(不然就会有多个meta_value,排序就不准确了),orderby必须为meta_value_num(这两个参数缺一不可)


首先,你需要通过其他的代码来实现文章的访问次数,这里就不扩展了,总之,文章的访问次数被放在一个meta_key=views的meta对中,meta_value就是该文章的访问次数。但是在上面的代码中你发现我使用了’meta_value_num’,而非’meta_value’,这里解释下。

在排序的时候如果使用meta_value_num,则在查询sql时默认将这个meta_value作为一个数值来对待,因此13大于2,而如果使用meta_value,则在查询时默认作为一个字符串来进行比较,因此’2’大于’13’。

明白了这一点之后,我们就可以实现很多妙用,比如本站的教程“章节”就是使用meta实现的,在排序的时候采用的是’meta_value’,而非’meta_value_num’,因为当初在设计的时候,采用了’4-3’这样的形式,表示第4节下的第3小节,如果使用’meta_value_num’的话,就变成了1,就排到2前面去了。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-16 07:56 , Processed in 0.074133 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表