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



如果你自己开发WordPress,就会对WordPress的post meta非常熟悉,但是meta信息和post信息不在同一个数据库表中,因此无法简单的按照以前的方法进行排序。

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

我们要列出文章列表,要使用query_posts(或$WP_Query),我们做如下代码:

未经许可,不得转载,本文原文来自电脑学习网(www.yuucn.com
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前面去了。

当然,在本节的学习时,你应该提前掌握query_posts的用法,这会在今后的课程中详细讲解。

本文未经电脑学习网书面授权,不得进行转载,请知晓




除了特别申明外,本站资源均来自互联网公开内容,如果侵犯了您的权益,请进行投诉
电脑学习网 » WordPress中通过meta_value排序:按浏览量排序的实现方法

发表评论