• 注册
  • 前端后端 前端后端 关注:1 内容:71

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

  • 查看作者
  • 打赏作者
  • 帅气冲天

    问题前言

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

    解决方案

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

    使用说明

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

    请登录之后再进行评论

    登录

    我关注的论坛

    暂没有数据

  • 发布内容
  • 做任务
  • 偏好设置
  • 直达底部
  • 帖子间隔 侧栏位置: