我正在尝试构建我的第一个插件,并构建我的插件菜单,如下所示:
function group_panel(){
include(\'html/example.html\');
echo "<h1>{$_POST[\'data\']}";
}
function groups_add_menu(){
if (function_exists(\'add_menu_page\')){
add_menu_page(\'Group\',\'Group\',8,basename(__FILE__),\'group_panel\',plugins_url(\'/img/icon.png\',__FILE__));
add_submenu_page(basename(__FILE__),\'Example\',\'Example\',8,\'red.php\');
}
}
我的文件夹是这样的
我有文件red.php
的内部/plugins/my-plugin/red.php
但如果我在“示例”菜单中按,WordPress会将我的发送到索引,但第一个选项(“组”)有效。
如何放置我菜单的URL?
最合适的回答,由SO网友:Sumit 整理而成
您不能以这种方式加载外部文件。此参数用于菜单slug。如果你加载外部文件,它是无用的,除了你要在文件中打印的内容之外,什么都没有,也没有WordPress功能(因为WordPress没有加载)。
您可以为此定义回调函数,然后包括red.php
在该功能中。
首先,在主文件(定义插件头的地方)中为插件路径定义一个常量,以便您以后也可以使用它。
define( \'MY_PLUGIN_PATH\', plugin_dir_path( __FILE__ ) );
然后添加带有slug和回调函数的子菜单页
add_submenu_page(basename(__FILE__),\'Example\',\'Example\', \'manage_options\', \'my-plugin-page-slug\', \'include_plugin_file\');
NOTE- 用户级别(从1到10)是不推荐使用的功能。看见
Roles and Capabilities然后在回调函数中使用path常量并包含文件
function include_plugin_file() {
include_once MY_PLUGIN_PATH . \'red.php\';
}