问题前言
要让某个区块文章按照游览量来排序,怎么弄?
解决方案
我用的主题是有游览量功能的(如果你的主题没有记录游览量的功能,可以安装插件 WP-PostViews)
我这文章的浏览量是用自定义字段 views 来记录的,因此,如果我们要在归档页面按文章的热度,也就是浏览量来排序的话,只需要将下面的代码添加的主题functions中就可以了。
其中 is_archive() 指的是归档页,也就是分类,标签,日期等归档页面,可以把这个条件换成你需要的,比如 is_home() 那就是首页按浏览量排序,或者直接去掉这个条件,即所有文章归档页面都按浏览量排序,看实际情况而定了。
不过这个方法有个比较严重的问题就是,如果一篇文章,一个浏览量也没有,那么就不能被查询到,解决的方法可以在发布文章时,手动添加一个views字段为1,或者文章发布后,自己点击查看一下,增加一个浏览量。
//排序 function my_pre_get_posts( $query ) { // do not modify queries in the admin if( !is_admin() && is_main_query()) { if( is_archive() ) { // $query->set('orderby', 'meta_value'); $query->set('orderby', 'meta_value_num'); $query->set('meta_key', 'views'); $query->set('order', 'DESC'); } return $query; } } add_action('pre_get_posts', 'my_pre_get_posts');
使用说明
请根据自己实际情况做相应修改