重写子主题中插件的页面模板

时间:2021-02-19 作者:Geertjan

我有一个插件,可以创建自定义的帖子类型;项目;。插件文件夹中有一个模板文件(single project.php),我想在其中进行一些更改。但我想知道如何从我正在处理的子主题重写此文件。我试着复制一份并将其放在我的子主题文件夹中,但wordpress没有选择那个文件夹。如何在不编辑插件文件夹中的文件的情况下实现这一点(并且在插件更新时有丢失更改的风险?)

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

使用filter template_include 替代模板路径。示例:

add_filter( \'template_include\', function( $template ) {
    
    if ( ! is_singular() ) {
        return $template;
    }
    
    if ( \'project\' !== get_post_type() ) {
        return $template;
    }
    
    // Now we can safefely
    return get_stylesheet_directory() . \'/single-project.php\';      
});

相关推荐