向自定义帖子类型分类法添加自定义模板



我创建了一个自定义帖子类型,它有一些类别。我用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;
} );

感谢所有贡献者和社区。

最新更新