博华网络科技,点击查看详情

WordPress教程:自定义文章排序

WordPress默认排序是按照文章发布时间的,有时候我们需要按照其他方式来排序,或者提供其他方式排序的功能。如果只是基本的排序,比如按照修改时间,或者按照评论数之类的,不需要做任何改动,直接在url加上orderby参数就可以的。

比如按评论数量排序就是:

  1. http://yourdomian.com/?orderby=comment_count

按修改时间就是:

  1. http://yourdomian.com/?orderby=modified

随机排序就是:

  1. http://yourdomian.com/?orderby=rand

按照ID大小就是:

  1. http://yourdomian.com/?orderby=ID

但是复杂一些的比如按照浏览量排序,则需要orderby和meta_key两个参数,我使用下面的链接并没有得到期望的排序:

  1. https://yourdomain.com/?orderby=meta_value_num&meta_key=views

说明meta_key这个参数无法正常传递,我们只能使用pre_get_posts这个hook来处理。把下面的代码加到functions.php中即可:

  1. add_action(‘pre_get_posts’, ‘fa_orderby_views’);
  2. function fa_orderby_views($query) {
  3. if (is_home() && $query->is_main_query() && get_query_var(‘orderby’) == ‘views’) {
  4. $query->set(‘meta_key’, ‘views’);
  5. $query->set(‘orderby’, ‘meta_value_num’);
  6. }
  7. return $query;
  8. }

然后就可以使用下面的url来获取按照浏览量的排序了。

  1. https://yourdomain.com/?orderby=views

以上。

人已赞赏
wordpress教程

WordPress教程:禁止多个人同时登录一个用户账号

2020-5-26 12:40:51

wordpress教程

wordpress教程:禁用 WordPress 的 JSON REST API

2020-5-26 12:40:57

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索