我正在使用自定义插件创建自定义帖子类型。自定义帖子类型的一个要求是在表格布局中显示,以便打印/发送电子邮件。
对于这种情况,合理的解决方案似乎是在插件中包含一个特定的模板文件,该模板文件将用于单个自定义Post类型查询,而不是单个。php/索引。主题中提供的php。
我如何使用插件中的文件替换单个插件。php/索引。php上的单一自定义post类型查询?
提前谢谢你。
我正在使用自定义插件创建自定义帖子类型。自定义帖子类型的一个要求是在表格布局中显示,以便打印/发送电子邮件。
对于这种情况,合理的解决方案似乎是在插件中包含一个特定的模板文件,该模板文件将用于单个自定义Post类型查询,而不是单个。php/索引。主题中提供的php。
我如何使用插件中的文件替换单个插件。php/索引。php上的单一自定义post类型查询?
提前谢谢你。
我处理这些问题的方法是存储以供使用template_include
有条件地传递插件模板。其中一个条件是WordPress尚未找到相应的文件(即主题文件夹中不存在)。
这意味着用户只需在其主题中创建适当的模板,就可以使用特定于主题的插件模板超越插件模板。因此,他们可以进行更改,而不用担心插件更新:
以下用途single-event.php
而不是single.php
查看“事件”帖子类型的单个帖子时。
/**
* Checks to see if appropriate templates are present in active template directory.
* Otherwises uses templates present in plugin\'s template directory.
*/
add_filter(\'template_include\', \'wpse72544_set_template\');
function wpse72544_set_template( $template ){
/*
* Optional: Have a plug-in option to disable template handling
* if( get_option(\'wpse72544_disable_template_handling\') )
* return $template;
*/
if(is_singular(\'event\') && \'single-event.php\' != $template ){
//WordPress couldn\'t find an \'event\' template. Use plug-in instead:
$template = \'absolute/path/to/plugin/template/single-event.php\';
}
return $template;
}
请注意,所有主要查询条件(is_*
此时,功能)对您可用。我在本地机器上安装了一个WP,试图用插件弄脏我的手。我希望从github克隆一个包含此插件代码的项目。然而,我没有插件内部的权限,作为一个没有su权限的普通用户,我无法做到这一点。(当然,我可以成为根并这样做,但我不认为这是应该的)。然后,默认情况下,WP安装中的文件夹将组设置为“tape”,这对我来说很奇怪。本地WP安装上内部文件夹的正确权限应该是什么?