模板通常被降级为主题开发,用于提供布局和演示,这正是主题要提供的内容。
但是,您可以在插件激活时向主题添加模板文件。您可以挂接插件激活(和停用)
register_activation_hook($filename, \'myPluginActivation\');
register_deactivation_hook($filename, \'myPluginDeactivation\');
并使用在主题目录中手动创建模板文件
fopen()
fwrite()
fclose()
(记住在插件停用时删除创建的文件)。
该战略的关键问题是:
如果用户更改主题模板文件未移动到新的主题目录,则不会对文件操作进行错误处理,您要创建的文件可能已经存在如果您不需要在客户端保留模板选择,则可以使用template redirect hook 并使用plugin dir中的模板手动重定向默认模板。
add_action("template_redirect", \'my_theme_redirect\');
function my_theme_redirect() {
$plugindir = dirname( __FILE__ );
$return_template = $plugindir . \'/themefiles/\' . $templatefilename;
do_theme_redirect($return_template);
}
这样,当插件被激活时,就可以覆盖默认模板。就我个人而言,我会使用该插件为该帖子类型创建自定义帖子类型和重定向策略,检查主题目录中是否已经存在自定义帖子类型模板,以便在主题目录中创建自定义帖子类型模板。
您可以在中找到有用的信息this Tom McFarlin article