在WordPress中包含/需要PHP文件的正确方式

时间:2015-10-27 作者:caffeine

我是一名新的WordPress开发人员,最近我在多个网站上遇到了一些问题include_oncerequire_once 用于PHP文件。如果我包括(get_theme_directory_uri() . \'subdir/file\') 指定的文件被包括在内(或是必需的,这会导致致命错误),但如果在“文件”中调用任何WordPress函数,我会得到类似的结果:

\'Call to undefined function add_action() in/full/path/to/file\'。

我找到的明显解决方案是:

include(dirname(__FILE__) . "/subdir/filename");
这是对的还是我错过了在某处包含文件的“WordPress方式”?

2 个回复
SO网友:thomascharbit

如果你检查https://codex.wordpress.org/Function_Reference/get_template_directory_uri

你会看到get_template_directory_uri() 返回uri,而不是服务器路径。

您应该使用get_template_directory() 功能:

include get_template_directory() . \'subdir/filename.php\';
对于插件,您可以使用plugin_dir_path() 功能:

include plugin_dir_path( __FILE__ ) . \'subdir/filename.php\';

SO网友:Maidul

WordPress 4.7+引入get\\u theme\\u file\\u path()函数以包含WordPress主题上的文件。

包括如下内容:

include get_theme_file_path( \'/subdir/filename.php\' );
使用此函数的优点是在子主题上,您可以覆盖父主题文件。

参考号:https://developer.wordpress.org/reference/functions/get_theme_file_path/