• 开启全站HTTPS。2017-04-29
  • 本站为非盈利性站点,所得收入全部用于网站服务器及其他费用。2015-10-15
  •    2年前 (2016-04-08)  WordPress教程 |   1 条评论  18 
    文章评分 0 次,平均分 0.0

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

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

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

    按修改时间就是:

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

    随机排序就是:

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

    按照ID大小就是:

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

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

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

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

    add_action(‘pre_get_posts’, ‘fa_orderby_views’);
    function fa_orderby_views($query) {
    if (is_home() && $query->is_main_query() && get_query_var(‘orderby’) == ‘views’) {
    $query->set(‘meta_key’, ‘views’);
    $query->set(‘orderby’, ‘meta_value_num’);
    }
    return $query;
    }

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

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

    以上。

     

    除特别注明外,本站所有文章均为小浩博客原创,转载请注明出处来自https://www.xhsay.com/custom-post-sort.html

    关于
    小浩博客(www.xhsay.com)是由Tovey建立的个人站点,主要致力于整合并分享各种互联网及网站建设的资源。

    发表评论

    表情 格式
    1. 不错,不错,看看了!

      zengda 来自天朝的朋友 搜狗浏览器 Windows 7 2年前 (2016-04-08) 回复
    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册