我有一个自定义插件“图表”,它有自己的菜单。该菜单中有指向插件的3个页面的链接-“Charts”、“Add Chart”和“Edit Chart”。但是,我不想显示“编辑图表”的链接。
下面是我如何添加有问题的页面-
$this->pagehook = add_submenu_page(\'charts\', __(\'Edit Chart\'), __(\'Edit Chart\'), \'edit_charts\', \'edit-chart\', array(&$this, \'on_show_page\'));
我已经在互联网上搜索过了,但找不到这样做的方法。可以删除整个顶级菜单(不是我需要的),并且可以从
$submenu
全局(但这样做也会删除已注册的功能),因此任何人都无法访问该页面-
global $submenu;
if(!empty($submenu[\'charts\'])) : foreach($submenu[\'charts\'] as $key => $page) :
if($page[0] === \'Edit Chart\') :
/** Removes all permissions to access the page */
//unset($submenu[\'charts\'][$key]);
/** Removes the title, but the menu entry still exists, so it looks odd */
$submenu[\'charts\'][$key][0] = \'\';
endif;
endforeach;
endif;
我想通过CSS来隐藏它,但找不到通过Wordpress生成的HTML来实现这一点的方法-
<li><a href="admin.php?page=edit-chart" tabindex="1">Edit Chart</a></li>
我也考虑过jQuery,但这与CSS路线有类似的限制,而且我不相信我是唯一一个希望这样做的人——一定有办法,我就是找不到!
任何提示和提示。
谢谢
SO网友:lanicor
从上的文档add_submenu_page()
, 您可以通过设置子菜单链接所属的顶级菜单项来隐藏子菜单链接slug
(第一个参数)到null
:
add_action( \'admin_menu\', \'register_my_custom_submenu_page\' );
function register_my_custom_submenu_page() {
add_submenu_page(
null,
\'My Custom Submenu Page\',
\'My Custom Submenu Page\',
\'manage_options\',
\'my-custom-submenu-page\',
\'my_custom_submenu_page_callback\',
);
}
要突出显示所需的菜单项(例如,访问隐藏的“编辑图表”页面时的“所有图表”),可以执行以下操作:
add_filter( \'submenu_file\', function($submenu_file){
$screen = get_current_screen();
if($screen->id === \'id-of-page-to-hide\'){
$submenu_file = \'id-of-page-to-higlight\';
}
return $submenu_file;
});