当前位置:首页 > CMS教程 > WordPress > 列表

WordPress系统中增加选择文章的排序方式

发布:smiling 来源: PHP粉丝网  添加日期:2015-03-24 14:07:49 浏览: 评论:0 

很多网站的文章列表页面都可以查看排序方法,但是在wp系统中是没有这个功能,下面我们来看看关于WordPress系统中增加选择文章的排序方式的解决办法.

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

文章排序

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

构造链接

链接主要用于传递GET参数,让PHP程序知道你到底想怎么排序,在主题的index.php中你需要的位置插入以下代码,用于输出排序按钮的HTML,这个排序按钮的样式,你再自己写写css咯,需要注意的是以下代码会自动获取当前用户已选择的排序方式,并给这个排序按钮的 li 添加了class="current",代码如下:

  1. <h4>文章排序</h4> 
  2. <ul> 
  3.     <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='rand') ) echo 'class="current"'; ?> href="/?order=rand" rel="nofollow">随机阅读</a></li> 
  4.     <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='commented') ) echo 'class="current"'; ?> href="/?order=commented" rel="nofollow">评论最多</a></li>  //开源软件:phpfensi.com 
  5.     <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='alpha') ) echo 'class="current"'; ?> href="/?order=alpha" rel="nofollow">标题排序</a></li> 
  6. </ul> 

改变主循环

首先你得先在主题的index.php中找到以下语句:

if (have_posts())

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

  1. if ( isset($_GET['order']) ) 
  2.     switch ($_GET['order']) 
  3.     { 
  4.         case 'rand' : $orderby = 'rand'break
  5.         case 'commented' : $orderby = 'comment_count'break
  6.         case 'alpha' : $orderby = 'title'break
  7.         default : $orderby = 'title'
  8.     } 
  9.     global $wp_query
  10.     $argsarray('orderby' => $orderby'order' => 'DESC'); 
  11.     $arms = array_merge($args$wp_query->query); 
  12.     query_posts($arms); 
  13. if (have_posts()) 

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

Tags: WordPress系统文章 WordPress排序

分享到: