Moke|墨客

 找回密码
 立即注册
搜索
查看: 10123|回复: 0

WordPress让访客选择文章的排序方式

[复制链接]

3636

主题

0

回帖

3681

积分

超级版主

Rank: 8Rank: 8

积分
3681
发表于 2016-5-12 18:17:02 | 显示全部楼层 |阅读模式






                  之前已经有不少网友问我,露兜博客首页的访客可自行选择文章排序方式的效果是怎么做的,因为之前工作都比较忙,很抱歉没有及时给这些网友答复。今天就来给大家分享这个文章排序效果的实现过程吧。

  其实实现过程也比较简单,一个是构造链接,另外一个是使用query_posts来改变一下主循环就可以了。
构造链接

  链接主要用于传递GET参数,让PHP程序知道你到底想怎么排序。在主题的index.php中你需要的位置插入以下代码,用于输出排序按钮的HTML,这个排序按钮的样式,你再自己写写css咯。需要注意的是以下代码会自动获取当前用户已选择的排序方式,并给这个排序按钮的 li 添加了class="current"(另外,记得把http://www.ludou.org改成你的博客首页网址哦):
<h4>文章排序</h4><ul>    <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='rand') ) echo 'class=&quot;current&quot;'; ?> href=&quot;http://www.ludou.org/?order=rand&quot; rel=&quot;nofollow&quot;>随机阅读</a></li>    <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='commented') ) echo 'class=&quot;current&quot;'; ?> href=&quot;http://www.ludou.org/?order=commented&quot; rel=&quot;nofollow&quot;>评论最多</a></li>    <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='alpha') ) echo 'class=&quot;current&quot;'; ?> href=&quot;http://www.ludou.org/?order=alpha&quot; rel=&quot;nofollow&quot;>标题排序</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';    }    global $wp_query;    $args= array('orderby' => $orderby, 'order' => 'DESC');    $arms = array_merge($args, $wp_query->query);    query_posts($arms);}if (have_posts())  好了,就这么简单,复制粘贴,轻轻松松实现排序效果,你&hellip;懂了吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 

 

快速回复 返回顶部 返回列表