2012-03-24 27 views
4

いくつかの機能について少し助けが必要です。私は、ユーザーがWordpress:ボタン/リンクをクリックしたときのコンテンツの動的ソート

利用シナリオ見たいものをポストを示すためにソート動的にすることができお知らせページを作成しようとしています:、タイトルA、タイトルB:ポストで

を、4タイトルEIがありますタイトルCおよびタイトルD.

タイトルA = CARAMOAN A LOOK BACK;

タイトルB = DESTINATION:PUERTO PRINCESA;

タイトルC =あなたが見ることができる無料のラウンドトリップチケット;

タイトルD =フィリピンで旅行するときに覚えておくべき5つの事柄。 - ユーザーがボタンをクリックすることで、ページの順序を変更することができます注文

を昇順

ほとんどのコメント

人気の動画

アルファベット:私はソートしたいこれで今

それはこのようなものになります。

enter image description here

答えて

2

それはクエリ文字列を使用することでしょうのための最も簡単な方法。

カテゴリページを見ているとします。

まず、カテゴリページ我々は意志の上に今、これはページのURLにクエリ文字列を追加します

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

カテゴリページにボタンを追加しますこのコードを追加します。

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

その後、functions.phpテンプレート

の3種類があるので、スイッチケースまたは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(); ?> 

それだそれ:)

関連する問題