をピックアップ:「犬のポストタイプ(mysite.com/dog
)のためのアーカイブページではWordpressのは、私は2つの次のカスタムポストタイプの登録したカスタムポストタイプのアーカイブページの間違ったテンプレート
function dogs() {
$labels = array(
'name' => 'Dogs'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail', 'excerpt')
);
register_post_type('dog', $args);
}
function cats() {
$labels = array(
'name' => 'Cats'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail', 'excerpt')
);
register_post_type('cat', $args);
}
を、私が表示したいです「犬」と「猫」の両方のポストタイプを使用する投稿。だから私はarchive-dog.php
と呼ばれ、このようなメインクエリを変更されたカスタムテンプレートを作成しました:
add_action('pre_get_posts', 'cats_and_dogs'));
function cats_and_dogs($query) {
if(! is_admin() && is_post_type_archive('dog')) {
if($query->is_main_query()) {
$query->set('post_type', array('dog', 'cat' ));
$query->set('posts_per_page', 4);
$query->set('post_status', 'publish');
$query->set('post__not_in', get_option('sticky_posts'));
}
}
}
私はmysite.com/dog
を訪れたとき、私はWordpressのは、自動的にarchive-dog.php
を拾うと「犬」と「猫のポストの両方を表示するように期待します。その代わりに、「犬」と「猫」の両方の投稿を表示していますが、archive-dog.php
を受け取っていませんが、archive.php
に戻ります。変更されたメインクエリから「cat」ポストタイプを削除して「dog」のみを残すと、すべて正常に動作します。投稿タイプと私のカスタムアーカイブテンプレートの両方をどのように持つことができますか?
を私は事のアーカイブ-dog.phpが変更されたクエリを行うには何も持っていない、一度パーマリンクを更新しようと、それは、正常に動作してテストされておらず、ちょうど前提です。 –