如何在自定义POST类型的查询中使用插件中的文件来替代single.php?

时间:2012-11-14 作者:ifdion

我正在使用自定义插件创建自定义帖子类型。自定义帖子类型的一个要求是在表格布局中显示,以便打印/发送电子邮件。

对于这种情况,合理的解决方案似乎是在插件中包含一个特定的模板文件,该模板文件将用于单个自定义Post类型查询,而不是单个。php/索引。主题中提供的php。

我如何使用插件中的文件替换单个插件。php/索引。php上的单一自定义post类型查询?

提前谢谢你。

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

我处理这些问题的方法是存储以供使用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-content/plugins中的权限问题

我在本地机器上安装了一个WP,试图用插件弄脏我的手。我希望从github克隆一个包含此插件代码的项目。然而,我没有插件内部的权限,作为一个没有su权限的普通用户,我无法做到这一点。(当然,我可以成为根并这样做,但我不认为这是应该的)。然后,默认情况下,WP安装中的文件夹将组设置为“tape”,这对我来说很奇怪。本地WP安装上内部文件夹的正确权限应该是什么?