为什么要在包含文件时使用GET_TEMPLATE_DIRECTORY()?

时间:2021-11-28 作者:redgard

当我在wordpress中包含文件时,我注意到,如果没有get\\u template\\u directory(),include可以很好地工作包含(Include)即使没有父项也可以正常工作。

include( get_template_directory() . \'/includes/front/enqueue.php\' );
工作良好

include \'/includes/front/enqueue.php\';
请任何人解释一下,在wordpress中导入文件时,我应该使用get\\u template\\u directory()吗?这是不是;“确定”;在include之后不使用括号?

1 个回复
SO网友:fuxia

get_template_directory() 可以进行筛选。当插件想要与您的主题交互时,例如当您想要编写自定义插件来扩展主题而不更改主题时,这会很有用。

例如:

add_filter( \'template_directory\', function( $template_dir, $template, $theme_root ) {
    if ( some_condition( $theme_root ) ) {
        return plugin_dir_path( __FILE__ ) . \'template\';
    }
});
include 是一个表达式,而不是函数,因此可以省略括号。

还要注意的是plugin_dir_path() 具有尾部斜杠,而get_template_directory() 没有。

相关推荐

我应该禁用wp-includes的目录列表吗?

出于我自己的好奇心,这更像是一个个人问题。我的一个网站似乎易受攻击,因为已启用目录列表(/wp includes)。这并不难修复,但我想知道如果没有任何文件可以访问,这到底有多严重?如果我点击任何文件,包括用户元和函数。php它要么返回HTTP 500,要么只是显示一个空白屏幕。那么,如果没有任何文件可以访问,黑客如何从访问目录中获益呢?