2012-03-24 88 views
4

我需要一些功能的幫助。我想創建一個帖子頁,可以是某種動態顯示用戶希望看到WordPress的:點擊按鈕/鏈接時的動態內容排序

使用場景是什麼職位:

在帖子中,有4個標題EI:標題A,標題B,標題C和標題D.

標題A = CARAMOAN A LOOK BACK;

標題B = DESTINATION:PUERTO PRINCESA;

標題C =東西一個免費的圓形門票可以讓你看;

標題D =在菲律賓旅行時要記住五件事;

這個我想排序

現在:

大多數評論

最多查看

字母 - 升階

,用戶可以通過點擊一個按鈕更改頁面順序那看起來像這樣。

enter image description here

回答

2

對於將使用查詢字符串的最簡單方法。

我假設您正在查看類別頁面。

首先,我們將按鈕添加到分類頁面

<a href="?sortby=comment>Sort by Comment</a> 
<a href="?sortby=views>Sort by Views</a> 
<a href="?sortby=alphabet>Alphabetical</a> 

這增加了查詢字符串的頁面的URL,現在在分類頁面我們將頂部添加以下代碼:

<?php 
if (array_key_exists("sortby", $_GET) === true) 
{ 
    $newQuery = sortIt($_GET['sortby']); 
} 
?> 

那之後,我們將創建既然我們有3種排序將在的functions.php模板

對我們的職位進行排序的功能,我們可以使用一個開關盒或if-else語句。我會在這裏使用if-else。

<?php 
function sortIt($sortType) 
{ 
    global $wp_query; 
    $cat_ID = get_query_var('cat'); 

    if (strcmp($sortType, 'comment') == 0) 
    { 
     $newQuery = new WP_Query(array('orderby' => 'comment_count' , 'cat' => $cat_ID, 'posts_per_page' => '10')); 
    } 

    if (strcmp($sortType, 'views') == 0) 
    { 
     $newQuery = new WP_Query(array('meta_key' => 'views', 'orderby' => 'meta_value_num', 'order'=> 'DESC', 'cat' => $cat_ID, 'posts_per_page' => '10')); 
    } 

    if (strcmp($sortType, 'alphabetical') == 0) 
    { 
     $newQuery = new WP_Query(array('orderby' => 'title' , 'cat' => $cat_ID, 'posts_per_page' => '10')); 
    } 

    return $newQuery; 
} 
?> 

WordPress的沒有一個本地的觀看次數,我使用的是讀here的指令。

由於我們有所有必要的功能和變量,我們需要重寫查詢。

<?php if ($newQuery->have_posts()) : while ($newQuery->have_posts()) : $newQuery->the_post(); ?> 

就是這樣:)

所以它是這樣的,將編輯循環