我知道以前有人问过这个问题,但我的问题不同。
所以我有一个插件,可以动态创建自定义帖子类型。该插件还具有为每个自定义帖子类型创建模板文件的功能。
它只需转到这些主题文件夹并为每个当前主题创建模板页面。这非常适合当前的主题。然而,如果管理员添加了另一个主题并激活它,会发生什么?
因此,我正在寻找一种方法来检测激活,然后运行函数为该主题创建模板页面。
我的第一个想法是检查主题激活挂钩,我认为这是行不通的。
有人有不同的想法吗?
我知道以前有人问过这个问题,但我的问题不同。
所以我有一个插件,可以动态创建自定义帖子类型。该插件还具有为每个自定义帖子类型创建模板文件的功能。
它只需转到这些主题文件夹并为每个当前主题创建模板页面。这非常适合当前的主题。然而,如果管理员添加了另一个主题并激活它,会发生什么?
因此,我正在寻找一种方法来检测激活,然后运行函数为该主题创建模板页面。
我的第一个想法是检查主题激活挂钩,我认为这是行不通的。
有人有不同的想法吗?
我建议将文件写入主题目录是错误的方法。您可能会创建多个重复文件,这会浪费磁盘空间,而且服务器的配置也可能导致磁盘写入无法工作。
有一个名为template_include
. 使用该过滤器,插件可以控制加载哪个模板,并可以从自己的目录加载模板。比如:
function load_plugin_template( $template ) {
global $wp_query;
if (is_single() && \'book_type\' === $wp_query->post->post_type) {
get_header();
include(plugin_dir_path( __FILE__ ).\'some/file/path/file.php\');
get_footer();
die;
}
return $template;
}
add_filter( \'template_include\', \'load_plugin_template\', 99 );
假设我有一个名为“事件”的自定义帖子类型,它有几个用于图像、文档等的自定义元框。。是否可能有两个不同的单一模板?例如:我有一个列出所有事件的页面,如果我单击一个事件,单一视图将显示我在event single中输入的所有元信息。php模板。现在,我想有一个不同的页面,再次列出所有事件,但如果我单击查看单个事件,则会使用不同的模板,以便显示与事件相关的其他元数据。或更好:page-events.php lists all events -> click on event -> shows sin