2017-01-05 8 views
0

2010年まで年ごとに絵のコンテンツの種類をアーカイブしてから残りの古いコンテンツの種類を< 2010年にすると、絵をリストアップするには、「アーカイブ」リンクをクリックしてください。特定の年の投稿をアーカイブし、古い投稿の一般的なアーカイブタブを持っています

は、私はすでに最初の部分を完了している:

wp_get_archives(array( 
    'post_type' => 'paintings', 
    'type' => 'yearly', 
    'limit' => 4) 
); 

それはとして表示されます。 2017 | 2016年| ...など

2010年より古い絵を1つのヘッダーリンクに追加したいと思います。

答えて

1

wp_get_archives()にオフセットパラメータがないため、これを行う順序を変更することができます。

wp_get_archives(array( 
    'post_type' => 'paintings', 
    'type' => 'yearly', 
    'limit' => 4, 
    'order' => 'ASC',) 
); 

あなたが分かっているように、アルファベット順の年は降順(デフォルト値)です。最初のアーカイブ年は2006年である場合は、ASCorderが表示されます変更:2006、2007、2008、2009

あなたは、これらの結果を逆にしたい場合は、あなたがformatechoパラメータでプレーし、2009年を表示するために、あなたのロジックを適用することができます、2008年、2007年、2006年。しかしそれは別の質問です!

UPDATE(コメント)

あなたがWP_Queryのためのすべての詳細と日付パラメータhereはあなたのクエリを適応させることができますクエリ

add_action('pre_get_posts', 'so_41494855'); 

function so_41494855($query){ 

    if(is_post_type_archive('paintings') && $query->is_main_query()){ 
     $before = '2009-12-31'; 
     $after = '2006-01-01'; 
     $date_query = array(
      'before' => $before, 
      'after' => $after 
     ); 
     $query->set('date_query', $date_query); 
     $query->set('posts_per_page', '15'); 
    } 
    return $query; 
} 

を変更するpre_get_postアクションを使用することができます。

このアーカイブページを特別なアーカイブリンクで検出する必要があります。 add_query_var()とget_query_var()についてお知りになり、WP_Queryで使用できるパブリッククエリ変数に追加されます。

conditionnalになった:このことについて考えて

if(is_post_type_archive('paintings') && get_query_var('show-paintings') == 'older' && $query->is_main_query()){} 

もう一つの方法は、新しいものと古い絵画を分離するために、カスタムポストタイプのクローンを作成することができます。アーカイブページを検出してクエリを変更する条件はis_post_type_archive('older-painting')になります。

希望していますか?&が役立ちます。

+0

ありがとう、Benoti。しかし、2009年、2008年などからのものを区別せずに1つにグループ化したいと思います。その年のすべての投稿をリストアップするヘッダーリンク、 'Older Archive'があります。 – vizzaro

+1

さて、私はそれを正確には理解していませんでした。あなたは毎年リストページへのリンクがほしいと思っていたので、pre_get_postsアクションを使用して、特別なアーカイブページのdate_queryを持つすべての投稿をリストすることができると思います。 – Benoti

+0

ありがとう、Benoti。 date_queryでpre_get_postsオプションを詳述してもよろしいですか?それは素晴らしいだろう。 – vizzaro

関連する問題