露兜博客首頁(yè)的訪客可自行選擇文章排序方式的效果是怎么做的,今天就來(lái)給大家分享這個(gè)文章排序效果的實(shí)現(xiàn)過(guò)程。
其實(shí)實(shí)現(xiàn)過(guò)程也比較簡(jiǎn)單,一個(gè)是構(gòu)造鏈接,另外一個(gè)是使用query_posts來(lái)改變一下主循環(huán)就可以了。
構(gòu)造鏈接
鏈接主要用于傳遞GET參數(shù),讓PHP程序知道你到底想怎么排序。在主題的index.php中你需要的位置插入以下代碼,用于輸出排序按鈕的HTML,這個(gè)排序按鈕的樣式,你再自己寫(xiě)寫(xiě)css咯。需要注意的是以下代碼會(huì)自動(dòng)獲取當(dāng)前用戶已選擇的排序方式,并給這個(gè)排序按鈕的 li 添加了class="current"
- <h4>文章排序</h4>
- <ul>
- <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='rand') ) echo 'class="current"'; ?> href="/?order=rand" rel="nofollow">隨機(jī)閱讀</a></li>
- <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='commented') ) echo 'class="current"'; ?> href="/?order=commented" rel="nofollow">評(píng)論最多</a></li>
- <li><a <?php if ( isset($_GET['order']) && ($_GET['order']=='alpha') ) echo 'class="current"'; ?> href="/?order=alpha" rel="nofollow">標(biāo)題排序</a></li>
- </ul>
改變主循環(huán)
首先你得先在主題的index.php中找到以下語(yǔ)句:
代碼如下:
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())
好了,就這么簡(jiǎn)單,復(fù)制粘貼,輕輕松松實(shí)現(xiàn)排序效果.