WordPress增加文章排序方式

时间:2021-05-02

露兜博客首页的访客可自行选择文章排序方式的效果是怎么做的,今天就来给大家分享这个文章排序效果的实现过程。
其实实现过程也比较简单,一个是构造链接,另外一个是使用query_posts来改变一下主循环就可以了。
构造链接
链接主要用于传递GET参数,让PHP程序知道你到底想怎么排序。在主题的index.php中你需要的位置插入以下代码,用于输出排序按钮的HTML,这个排序按钮的样式,你再自己写写css咯。需要注意的是以下代码会自动获取当前用户已选择的排序方式,并给这个排序按钮的 li 添加了class="current"

  • <h4>文章排序</h4>
  • <ul>
  • <li><a<?phpif(isset($_GET['order'])&&($_GET['order']=='rand'))echo'class="current"';?>href="/?order=rand"rel="nofollow">随机阅读</a></li>
  • <li><a<?phpif(isset($_GET['order'])&&($_GET['order']=='commented'))echo'class="current"';?>href="/?order=commented"rel="nofollow">评论最多</a></li>
  • <li><a<?phpif(isset($_GET['order'])&&($_GET['order']=='alpha'))echo'class="current"';?>href="/?order=alpha"rel="nofollow">标题排序</a></li>
  • </ul>

  • 改变主循环
    首先你得先在主题的index.php中找到以下语句:

    复制代码

    代码如下:


    if (have_posts())


    然后在这句之前添加以下代码:

    复制代码

    代码如下:


    if ( isset($_GET['order']) )
    {
    switch ($_GET['order'])
    {
    case 'rand' : $orderby = 'rand'; break;
    case 'commented' : $orderby = 'comment_count'; break;
    case 'alpha' : $orderby = 'title'; break;
    default : $orderby = 'title';
    }</p> <p> global $wp_query;
    $args= array('orderby' => $orderby, 'order' => 'DESC');</p> <p> $arms = array_merge($args, $wp_query->query);
    query_posts($arms);
    }</p> <p>if (have_posts())

    好了,就这么简单,复制粘贴,轻轻松松实现排序效果.

    声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

    相关文章