2011-02-04 7 views
0

私のウェブサイトは詩についてです。meta_valueとtitleに基づいて表示される投稿の順序を変更するにはどうすればよいですか?

メタキーが「著者」で、メタ値が著者の名前である各詩にカスタムフィールドを使用します。 "アリソン、ジェームス"。

私は自分の投稿を特定の順序でアルファベット順に表示したいと思います(例えば、Allison、Jamesのすべての詩、次にBarnes、Johnのすべての詩";そして、" Carter、Sue "などのすべての詩)。

特定の著者(=メタ値)の詩は、アルファベット順(たとえば、Allison、James:「After dark」、「Before sunset」など)のアルファベット順に並べ替える必要があります。これを行う方法はありますか?私は以下の文字列を見つけましたが、うまくいかないかもしれません(おそらく私はそれを間違った場所に置くか、それ以外のコードを加えて動作させる必要があります)。

希望する効果を得るために、どのPHPコードをどのファイルに入れなければならないのか考えていますか?

<?php 
$querystr = " 
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta 
    WHERE wposts.ID = wpostmeta.post_id 
    AND wpostmeta.meta_key = 'Autor' 
    AND wposts.post_type = 'post' 
    ORDER BY wpostmeta.meta_value ASC 
"; 

$pageposts = $wpdb->get_results($querystr, OBJECT); 

?> 


どうもありがとう!乾杯、フェリックス

答えて

0

何について:

がDISTINCT $ wpdb->の記事をSELECT $ wpdb->ポスト LEFT JOINの$ wpdb-> postmeta ON $ wpdb-> postmeta.post_id FROM作者 AS *、meta_value。 = $ wpdb-は> 1 = 1 をposts.IDとpost_statusは= 'を公開' AND post_type = 'ポスト' AND meta_key = 'Autor' NDのpost_password = '' 著者DESC BY ORDER。

0

私は最終的にasolutionが見つかりました:O)Ambrositeプラグインを使用して、私は私のsingle.phpにコードの次の部分を追加しました:

<?php 
    previous_post_link_plus(array(
     'loop' => true, 
     'link' => '«', 
     'format' => '%link', 
     'order_by' => 'custom', 
     'order_2nd' => 'post_title', 
     'meta_key' => 'Autor', 
     'order'=>'ASC', 
     'in_same_cat' => true 
    )); 
?> 

とを:

<?php 
    next_post_link_plus(array(
     'loop' => true, 
     'link' => '»', 
     'format' => '%link', 
     'order_by' => 'custom', 
     'order_2nd' => 'post_title', 
     'meta_key' => 'Autor', 
     'order'=>'ASC', 
     'in_same_cat' => true 
    )); 
?> 

それは素晴らしい作品!とにかくおかげで、フェリックス

関連する問題