我已注册以下两种自定义帖子类型:
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 );
}
在' dog'的归档页面中帖子类型(mysite.com/dog
),我想显示同时使用' dog'和猫的#39;发布类型。因此,我创建了一个名为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
并同时显示“狗”和“狗”。并且' cat'帖子。相反,虽然它确实显示了“狗”和“狗”。并且' cat'帖子,它不会提取archive-dog.php
但会回到archive.php
。如果我删除了“猫”。来自更改后的主要查询的帖子类型,只留下“狗”,一切正常。如何同时拥有两种帖子类型和我的自定义存档模板?
答案 0 :(得分:0)
将以下代码放在你的functions.php中并享受:
ng text -e <env-variable>