我创建了自定义帖子类型:
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"我正在使用帖子类别(不是自定义分类法,因为在我的情况下它不是可行的选项)来分离这些构建 - 例如近战构建,远程构建,拼写构建等。我想要归档对于每个类别的自定义帖子类型,例如显示所有近战构建。为此,我使用类别teplates,例如category-melee.php基于类别slug,它工作正常,但它没有显示自定义帖子类型的任何帖子 - 只有给定类别的常规帖子。在这种情况下该怎么办?我是否应该尝试在主题中的某处找到并修改wp_query以包含" Builds" (因为我已经尝试过但没有成功)还是有其他一些解决方法?谢谢。
答案 0 :(得分: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' );
}
}
});
答案 1 :(得分:0)
function namespace_add_custom_types( $query )
{
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) )
{
$query->set( 'post_type', array(
'post', 'nav_menu_item', 'your-custom-post-type-here'
));
return $query;
}
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );