首页 » 建站技术 » WordPress » 浏览内容

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


2012-06-09 21:16:58 1,534 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

构造链接

链接主要用于传递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="current"'; ?> href="http://www.ludou.org/?order=rand" rel="nofollow">随机阅读</a></li>
  •     <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='commented') ) echo 'class="current"'; ?> href="http://www.ludou.org/?order=commented" rel="nofollow">评论最多</a></li>
  •     <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='alpha') ) echo 'class="current"'; ?> href="http://www.ludou.org/?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';
  •     }
  •     global $wp_query;
  •     $args= array('orderby' => $orderby, 'order' => 'DESC');
  •     $arms = array_merge($args, $wp_query->query);
  •     query_posts($arms);
  • }
  • if (have_posts())
  • 好了,就这么简单,复制粘贴,轻轻松松实现排序效果,你…懂了吗?

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4761 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13193919 位访客

      广告区 Guǎng Gào