我知道我们可以single-custom-post.php
但我有多个自定义帖子类型
america
nepal
norway
我能做到
single-america.php
,
single-nepal.ph
P
single-norway
. 但他们基本上都有相同的违规行为
DRY
. 我目前正在从插件注册这样的帖子。如何在名为的插件中为他们显示模板
single-country.php
?
我想我们可以template_include
滤器但我还是不知道该怎么做?
像这样试过
add_filter( \'template_include\', function ( $template ) {
$cpt=["america","nepal","norway"]
if ( //how to check condition if it is custom post type single ) {
return ADVANCED_NOTES_DIR . \'country-single.php\';
}
return $template ;
}) ;
那么,我们可以对多个自定义帖子类型使用相同的模板吗?
谢谢:)
SO网友:gmazzap
是的,你可以用template_include
或者更具体的single_template
.
示例代码:
add_filter( \'single_template\', function( $template ) {
$cpt = [ \'america\', \'nepal\', \'norway\' ];
return in_array( get_queried_object()->post_type, $cpt, true )
? \'path/to/country-single.php\'
: $template;
} );
single_template
过滤器仅针对单一查询运行,因此您不需要检查您是否在单一视图上,只需检查所查询的帖子类型是否是要替换模板的CPT之一。
我用过get_queried_object()
对于范围。