问题描述
我想在主题文件夹中检查一个适当的模板,然后再回到我的 plugin 目录下的文件。这是我的代码:
add_filter('template_include', 'sermon_template_include');
function sermon_template_include($template) {
if(get_query_var('post_type') == 'wpfc_sermon') {
if ( is_archive() || is_search() ) :
if(file_exists(TEMPLATEDIR . '/archive-wpfc_sermon.php'))
return TEMPLATEDIR . '/archive-wpfc_sermon.php';
return dirname(__FILE__) . '/views/archive-wpfc_sermon.php';
else :
if(file_exists(TEMPLATEDIR . '/single-wpfc_sermon.php'))
return TEMPLATEDIR . '/single-wpfc_sermon.php';
return dirname(__FILE__) . '/views/single-wpfc_sermon.php';
endif;
}
return $template;
}
问题是,它不工作! 🙂 它总是在我的插件文件夹中选择文件。任何想法该怎么办?我尝试了很多变化,但我似乎无法做任何工作!提前致谢!插口
编辑
我期待从主题文件夹 (如果存在) 返回 archive-wpfc_sermon.php 。但是,我的插件中的文件总是被返回。谢谢你的帮助!这是从我的 Sermon Manager 插件在存储库中可用。
最佳解决方案
所以,我不知道究竟是什么导致的问题,但你可以尝试以下:
-
插件文件路径:用
plugin_dir_path( __FILE__ )
替换dirname(__FILE__)
-
主题文件路径:用
get_stylesheet_directory()
替换TEMPLATEDIR
这可能是直接引用常量的问题。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。