• 注册
  • WordPress WordPress 关注:2 内容:19

    WordPress 按自定义字段(浏览量)排序

  • 查看作者
  • 打赏作者
    • WordPress
    • Lv.14
      帅气冲天

      问题前言

      要让某个区块文章按照游览量来排序,怎么弄?

      解决方案

      我用的主题是有游览量功能的(如果你的主题没有记录游览量的功能,可以安装插件 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');

      使用说明

      请根据自己实际情况做相应修改

      请登录之后再进行评论

      登录

      我关注的论坛

      暂没有数据

    • 发布内容
    • 做任务
    • 实时动态
    • 偏好设置
    • 帖子间隔 侧栏位置: