您的问题是用于包含文件的路径。
plugin_dir_path()
只需获取给定文件/目录的目录,该目录后面有一个斜杠。因此,如果您的代码在这里:
plugin/admin/views/key-analyzer-groups.php
那么
dirname( __FILE__ )
将返回
plugin/admin/views
所以
plugin_dir_path( dirname( __FILE__ ) )
将返回
plugin/admin/
这意味着您正在尝试包括以下路径:
plugin/admin/admin/templates/groups.php
这是不存在的。
如果您想通过可靠的方式获取插件在整个代码中使用的目录,那么您应该在根插件文件中定义一个返回路径的函数,然后在整个代码中使用该函数:
function key_analyzer_plugin_path() {
return plugin_dir_path( __FILE__ );
}
然后在其他文件中使用该功能,以包括:
class Key_Analyzer_Groups {
public static function init() {
include_once key_analyzer_plugin_path() . \'admin/templates/groups.php\';
}
}
您还可以调整此方法来创建一个函数,用于在插件中包含文件:
function key_analyzer_include( $file ) {
$file = ltrim( $file, \'/\' );
include plugin_dir_path( __FILE__ ) . $file;
}
现在,您可以使用该函数通过传递一个相对于主插件文件的路径来包含所有文件:
class Key_Analyzer_Groups {
public static function init() {
key_analyzer_include( \'admin/templates/groups.php\' );
}
}