我创建了一个自定义帖子类型,它有一些类别。我用User Frontend Pro为CPT类别创建了表单。
我正在寻找一个解决方案分配自定义模板的记录,以显示他们在网站上。例如;假设我有一个名为Project的CPT。项目岗位类型有两大类;"商业"one_answers"创意"用户可以用表单将他们的条目发布到这些类别,并在帐户仪表板下列出他们的帖子。
问题是;业务类别应该使用category- Business .php自定义模板显示,类似地,Ideas类别应该使用category- Ideas .php显示。
如何添加自定义模板到CPT类别?
注:我尝试了在WP文档中的模板层次结构解决方案,但它不起作用。因为内容有一个自定义视图函数。我正在寻找一个代码片段,自动添加模板页面属性到自定义帖子,如果可能的话。
假设你只是使用默认的WordPress分类,你可以使用pre_get_posts钩子将项目作为分类页面的一部分,如果它们默认不显示
function include_project_to_cat_pages( $query ) {
if ( $query->is_category() && $query->is_main_query() ) {
$query->set( 'post_type', array( 'post', 'project' ) );
}
}
add_action( 'pre_get_posts', 'include_project_to_cat_pages' );
我用过滤器解决了这个问题。
add_filter( 'single_template', function( $template ) {
global $post;
$cat = get_the_category()[0];
if ( $post->post_type === 'project' && $cat->slug === 'business') {
$locate_template = locate_template( "custom-business-template.php" );
if ( ! empty( $locate_template ) ) {
$template = $locate_template;
}
}
return $template;
} );
感谢所有贡献者和社区。