为自定义帖子类型帖子动态分配自定义模板

时间:2017-10-13 作者:samjco

因此,我正在编写一个插件,我想将插件目录中存在的自定义模板分配给注册的CPT(功能)。我有cpt功能模板。php作为位于我的插件文件夹根目录中的文件名。

我可以这样做吗:

add_filter(\'single_template\', function($original){
  global $post;
  //$post_name = $post->post_name;
  $post_type = $post->post_type;
  $base_name = \'custom-\' . $post_type . \'-template.php\';
  $template = locate_template($base_name);
  if ($template && ! empty($template)) return $template;
  return $original;
});
上述代码引用自Can I assign a template to a custom post type?

1 个回复
最合适的回答,由SO网友:mmm 整理而成

locate_template 只在主题中搜索模板然后要使用主题之外的文件,可以使用过滤器template_include 就像那样

add_filter("template_include", function ($template) {


    $post = get_queried_object();

    if (    is_single()
        &&  ("features" === $post->post_type)
    ) {
        // absolute path to the template file
        $template = __DIR__ . "/../../template/my_features_template.php";
    }


    return $template;

});

结束

相关推荐