有条件地检查页面是否使用插件目录中的模板

时间:2020-04-14 作者:pixelngrain

在插件中有条件地加载脚本时遇到问题。

我有一个DataTables页面,只想为该页面加载DataTables脚本。所以我制作了一个页面模板,名为datatables-template.php 并动态加载,以便在页面属性中设置模板。

The template pathmy-plugin/public/templates/datatables-template.php

到目前为止,一切都很顺利。然而,当我尝试使用is_page_template()

当我与get_page_template() 返回主题当前页面模板page.php 就我而言。

Note: is_page 当然,工作很好,因为它将检查当前页面,这将起作用。我还使用file_exists 这是真的。这意味着我为模板提供了正确的路径。所以不知道怎么检查。

另外:我试过global $template 它返回正确的插件模板,但在我的插件文件的条件检查中不起作用。

global $template;

if(\'datatables-template.php\' == $template){
    //load script
}
Question: 在我的例子中,如何检查页面是否在页面属性中设置了特定的页面模板datatables-template.php 并为该页面加载显式脚本?

1 个回复
SO网友:simongcc

如果我理解正确,您希望在加载之前检查模板。

我想是钩子template_include 是你能做的最好的地方。因为这是加载过程中加载模板的最后一个位置。

无论插件还是主题函数。php,它也可以工作。

以下证明在主题函数中有效。php

add_filter( \'template_include\', \'q364016_check_template\' );
function q364016_check_template( $template ) {
    // your code

    return $template;
}

相关推荐