我正在开发一个插件。我在functions.php
. 基本的想法是拥有一个默认菜单,它将是多个小型不同插件的父级。
我几乎都准备好了,但当我点击插件子菜单条目时,我遇到了一个问题。
URL已断开,无法转到正确的管理页
http://localhost/wp-admin/admin.php?page=my_page
它转到前端页面,该页面不可用,因此转到404。断开的URL如下所示:
http://localhost/wp-admin/my_page
正如你所见,
admin.php?page=
第二个条目中缺少。
我已经做了一些调查,如果我从插件本身初始化菜单,而不是从functions.php
文件
一些代码可以证明这一点:
WORKING
public function add_menu_item()
{
$page_reports = add_menu_page(__(\'Menu Page\', \'menu-page\'), __(\'Menu Page\', \'menu-page\'), \'read\', $this->parent->_token . \'_settings\', null, null, \'2.1\');
add_submenu_page(\'menu-page\', __(\'Report\', \'menu-page\'), __(\'Report\', \'menu-page\'), \'read\', $this->parent->_token . \'_REPORT\', array($this, \'IncludePluginPage\'));
}
public function IncludePluginPage()
{
include("../includes/index.php");
}
NOT WORKING
public function add_menu_item()
{
//$page_reports = add_menu_page(__(\'Menu Page\', \'menu-page\'), __(\'Menu Page\', \'menu-page\'), \'read\', $this->parent->_token . \'_settings\', null, null, \'2.1\');
add_submenu_page(\'menu-page\', __(\'Report\', \'menu-page\'), __(\'Report\', \'menu-page\'), \'read\', $this->parent->_token . \'_REPORT\', array($this, \'IncludePluginPage\'));
}
public function IncludePluginPage()
{
include("../includes/index.php");
}
// Code from functions.php to generate the menu entry
function custom_admin_menu(){
add_menu_page(\'Menu Page\', \'Menu Page\', \'read\', \'menu-page\', null, null, \'2.1\');
}
在这两种情况下,菜单都会正确显示,但当菜单从
functions.php
, 子菜单URL已断开。
我错过了什么?
请随意要求更多的代码,我真的不确定在这里添加什么可以尽可能多的帮助。
如果您想知道,我从以下模板开始:https://github.com/hlashbrooke/WordPress-Plugin-Template