问题描述

退房后:http://codex.wordpress.org/Function_Reference/remove_menu_page,我成功地使用以下代码从菜单中隐藏一些东西:

add_action( 'admin_menu', 'my_remove_menu_pages' );

function my_remove_menu_pages() {
    remove_menu_page('link-manager.php');
    remove_menu_page('tools.php');
    remove_menu_page('users.php');
    remove_menu_page('edit-comments.php');  
}

但是,”posts page” 和自定义帖子类型页面似乎都在/wp-admin/edit.php 上运行。

所以我正在寻找一种隐藏菜单栏的方式,但仍显示我添加的自定义帖子类型的菜单。

最佳解决方案

做这个 search,我发现了 Chris_O 的 this fine answer 。甚至还有一个 jQuery 解决方案。

无论如何,功能 remove_menu_page('edit.php'); 只删除帖子菜单。

但是,当我们从 Chris 回答中学习时,remove_menu_page('edit.php?post_type=athletes'); 将删除 「自定义帖子类型」 菜单。

要真正阻止对 URL 的访问,因为我们只是隐藏菜单项,请查看以下 Q& A:Blocking Administrative Access to Authors and Subcribers?

次佳解决方案

我刚刚尝试,remove_menu_page('edit.php'); 只会删除帖子顶级菜单。

我所有的其他自定义帖子类型 (和我有很多) 仍然可以正常工作。我有一种感觉,这是因为它直接查找完全是 slug,而不是文件的 basename 。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。