2017-01-25 6 views
0

私が作成したカスタムポストタイプ:表示するカスタムポストタイプカテゴリのアーカイブページ

function create_posttype() { 

register_post_type('builds', 
// CPT Options 
    array(
     'labels' => array(
      'name' => __('Builds'), 
      'singular_name' => __('Build') 
     ), 
       'taxonomies' => array('category', 'post_tag'), 
     'public' => true, 
     'has_archive' => true, 
     'rewrite' => array('slug' => 'builds'), 
        'supports' => array('thumbnail', 'title', 'excerpt',  'revisions', 'comments', 'author') 
    ) 
);} 

     // Hooking up our function to theme setup 
    add_action('init', 'create_posttype');` 

カスタムポストタイプは何の問題もなく働いているが、私は一つのことを動作させることはできません。

だから、基本的な考え方は、ということです私の状況では実行可能な選択肢ではないので、カスタムの投稿タイプ "Builds"があり、これらのビルドを分離するための投稿カテゴリ(カスタム分類ではない)を使用しています - 例えば、Meleeビルド、Rangedビルド、スペルビルドなどカスタム投稿の種類ごとにアーカイブを作成します。たとえば、すべてのMeleeビルドを表示します。そのために私はカテゴリーteplatesを使用しています。例えば、category-melee.phpはカテゴリslugをベースにしていますが、これは正常に動作していますが、カスタムポストタイプの投稿は表示されません。この状況で何をすべきか?テーマのどこかでwp_queryを見つけて修正する必要がありますか(なぜなら、私はそれを試して成功していないからです)、あるいはいくつかの他の回避策がありますか?ありがとうございました。

答えて

0

は私のfunctions.phpにこのスニペットを追加することで問題を解決するために管理

add_action('pre_get_posts', function($query) { 
if (! is_admin() && $query->is_main_query()) { 

    if (is_archive() || is_category()) { 
     $query->set('post_type', 'builds'); 
    } 


} 
}); 
関連する問題