WordPress如何删除和自定义后台管理菜单

我们登录WordPress管理后台后的时候,在屏幕左侧有不同的管理菜单,然而在某些情况下删除/隐藏某些管理菜单,那么WordPress如何删除和自定义后台管理菜单?这边为大家介绍下通过代码删除WordPress管理菜单。
一、删除一级菜单

将以下代码添加到当前主题(或子主题)的functions.php文件中:

  1. function wpdaxue_remove_menu_item() {
  2. remove_menu_page('menu-slug');
  3. }
  4. add_action('admin_menu', 'wpdaxue_remove_menu_item', 999);

接下来,将代码中的menu-slug替换为要删除的菜单项的。例如,如果您的页面网址如下所示:

  1. https://example.com/wp-admin/edit.php?post_type=simple-pay

然后,您将edit.php?post_type=simple-pay用作菜单项。因此,最终代码为:

  1. function wpdaxue_remove_menu_item() {
  2. remove_menu_page('edit.php?post_type=simple-pay');
  3. }
  4. add_action('admin_menu', 'wpdaxue_remove_menu_item', 999);

保存更改并完成。

二、删除子菜单

假设我们找到的一级菜单和二级菜单的网址分别为:

  1. 主菜单:
  2. http://aaaaa.cn/wp-admin/edit.php?post_type=astra-portfolio
  3. 子菜单1
  4. http://aaaaa.cn/wp-admin/edit-tags.php?taxonomy=astra-portfolio-other-categories&post_type=astra-portfolio
  5. 子菜单2
  6. http://aaaaa.cn/wp-admin/edit-tags.php?taxonomy=astra-portfolio-other-tags&post_type=astra-portfolio

那我们可以采用下面的代码实现去掉上面两个子菜单:

  1. function astra_child_remove_menu_item() {
  2. remove_submenu_page( 'edit.php?post_type=astra-portfolio', 'edit-tags.php?taxonomy=astra-portfolio-other-categories&post_type=astra-portfolio' );
  3. remove_submenu_page( 'edit.php?post_type=astra-portfolio', 'edit-tags.php?taxonomy=astra-portfolio-tags&post_type=astra-portfolio' );
  4. }
  5. add_action('admin_menu', 'astra_child_remove_menu_item', 9999);

有关此方法的更多信息,请访问WordPress.org上的remove_menu_page()(一级菜单) 和 remove_submenu_page()(子菜单)。

三、删除非管理员的菜单项

从安全角度出发,有时候需要针对非管理员屏蔽一些管理菜单,以下代码就是一个简单的示例:

  1. function wpdaxue_remove_menu_item() {
  2. if (!current_user_can('manage_options')) {
  3. remove_menu_page('edit.php?post_type=simple-pay');
  4. }
  5. }
  6. add_action('admin_menu', 'wpdaxue_remove_menu_item', 999);

在这里,我们使用current_user_can()函数来检查当前用户是不是管理员。如果该用户不是管理员用户,则该菜单项将被删除。

「本站提供免费SSL证书申请和免费注册上海公司服务,有需要请联系微信:Renqigroup」