我希望能够在这个格式添加新的管理员菜单部分在WordPress管理区,但使用外部链接:添加自定义顶级外部和自定义子菜单的外部链接WP管理员
Top Level
- item 1
- item 2
- item 3
然而,函数add_menu_page()和add_submenu_page()似乎只允许将菜单项添加到现有的帖子类型或页面。使用所有外部链接实现菜单的最简单方法是什么?非常感谢。
我希望能够在这个格式添加新的管理员菜单部分在WordPress管理区,但使用外部链接:添加自定义顶级外部和自定义子菜单的外部链接WP管理员
Top Level
- item 1
- item 2
- item 3
然而,函数add_menu_page()和add_submenu_page()似乎只允许将菜单项添加到现有的帖子类型或页面。使用所有外部链接实现菜单的最简单方法是什么?非常感谢。
不能添加外部链接直接使用和add_submenu_page()
为你所发现的,但你可以操纵全球$menu
和$submenu
变量来实现这一(最多WP 4.8.1反正)
1。添加一个外部链接的顶级菜单
如果你想添加一个外部链接作为一个顶级菜单,你可以按如下做到这一点:
add_action('admin_menu', 'admin_menu_add_external_link_top_level');
function admin_menu_add_external_link_top_level() {
global $menu;
$menu_slug = "external_slug"; // just a placeholder for when we call add_menu_page
$menu_pos = 1; // whatever position you want your menu to appear
// create the top level menu, using $menu_slug as a placeholder for the link
add_menu_page('admin_menu_add_external_link_top_level', 'External Link', 'read', $menu_slug, '', 'icon', $menu_pos);
// replace the slug with your external url
$menu[$menu_pos][2] = "http://www.example.com";
}
编号:Adding an Arbitrary Link to the Admin Menu?
这里要注意的主要事情是,你需要为“弹头”的占位符值传递到add_menu_page
,你会再与您的外部URL进行更换。 如果您尝试将网址作为子弹传递,Wordpress会将其附加到网站域,例如http://yourdomain.com/www.example.com。
2.添加顶级菜单与外部连结
的子菜单添加正常顶级菜单用含有外部链接的子菜单如下:
add_action('admin_menu', 'admin_menu_add_external_links_as_submenu');
function admin_menu_add_external_links_as_submenu() {
global $submenu;
$menu_slug = "externallink"; // used as "key" in menus
$menu_pos = 1; // whatever position you want your menu to appear
// create the top level menu
add_menu_page('external_link', 'External Links', 'read', $menu_slug, '', '', $menu_pos);
// add the external links to the slug you used when adding the top level menu
$submenu[$menu_slug][] = array('Example', 'manage_options', 'http://www.example.com/');
$submenu[$menu_slug][] = array('Google', 'manage_options', 'https://www.google.com/');
}
Ref:how to add custom link on wordpress admin sidebar
在这个例子中,我们设置了top-l evel域如同正常使用add_menu_page
。但是,我们不需要使用add_submenu_page
作为子菜单,而是直接操作$submenu
全局变量来添加我们的外部URL。
3.添加一个顶级菜单与外部链接和外部链接
虽然它不是完全清楚的子菜单,我认为你正在寻找添加一个顶级菜单是外部链接,还有一个外部链接的子菜单?
我不知道为什么你会想这样做,但如果你这样做,你可以按如下方式实现这一结合上面:
add_action('admin_menu', 'admin_menu_add_external_link_top_submenu');
function admin_menu_add_external_link_top_submenu() {
global $menu;
global $submenu;
$menu_slug = "http://www.example.com"; // url for the top-level option
$menu_pos = 1; // whatever position you want your menu to appear
// create the top level menu, using $menu_slug as a placeholder for the link
add_menu_page('admin_menu_add_external_link_top_level', 'External Links', 'read', 'my_slug', '', 'icon', $menu_pos);
// replace the slug with your external url
$menu[$menu_pos][2] = $myslug;
// add your submenu of external links
// add the links to the "slug" for your top-level menu (which is now your external url)
$submenu[$menu_slug][] = array('Example', 'manage_options', 'http://www.example.com/');
$submenu[$menu_slug][] = array('Google', 'manage_options', 'https://www.google.com/');
}
参考:只有我和一些审判&错误:)
此示例是选项1和2中代码的组合:使用add_menu_page
设置顶级菜单;用你的外部网址替换slu and,最后使用add_submenu_page
直接添加你的子菜单链接。
感谢您的详细回复,效果很好,非常感谢。 – d1ch0t0my
@ d1ch0t0my很高兴能帮到你!只要WP不要马上改变他们的内部菜单处理:) – FluffyKitten
可能的https://wordpress.stackexchange.com/questions/266318/how-to-add-custom-submenu-links-in-wp-admin-menus重复 –