如果你自己开发WordPress,就会对WordPress的post meta非常熟悉,但是meta信息和post信息不在同一个数据库表中,因此无法简单的按照以前的方法进行排序。
本文通过按浏览量排序这个实例来讲解按meta值,也就是meta_value,来排序的方法。
我们要列出文章列表,要使用query_posts(或$WP_Query),我们做如下代码:
query_posts(
array(
'meta_key' => 'views',
'orderby' => 'meta_value_num',
'order' => 'DESC'
)
);
首先,你需要通过其他的代码来实现文章的访问次数,这里就不扩展了,总之,文章的访问次数被放在一个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前面去了。
本文来源:【WordPress中通过meta_value排序:按浏览量排序的实现方法】
由思享SEO博客编辑转载,仅用于参考学习,如有侵权请联系本站修改删除!