首页 视频课程 主题开发课程第27章、后台菜单 WordPress注册后台子菜单的方法

WordPress注册后台子菜单的方法

2022-12-18 / 290阅

在WordPress中添加一个后台子菜单可以使用add_submenu_page()函数。该函数需要以下参数:

  • parent slug(父菜单的标识符)。
  • page title(页面标题)。
  • menu title(菜单标题)。
  • capability(用户权限)。
  • menu slug(菜单标识符)。
  • function(回调函数)。

例如,以下是如何在“设置”菜单下添加一个子菜单的代码示例:

function my_submenu_page() {
  // do something here
}

function my_add_submenu_page() {
  add_submenu_page(
    'options-general.php', // parent slug
    'My Submenu Page', // page title
    'My Submenu', // menu title
    'manage_options', // capability
    'my-submenu', // menu slug
    'my_submenu_page' // function
  );
}
add_action('admin_menu', 'my_add_submenu_page'); 

以上代码会在“设置”菜单下添加一个名为“My Submenu”的子菜单,并将其链接到“my_submenu_page”回调函数。

注意,如果您想要更改子菜单的位置,可以通过更改parent slug的值来实现。此外,capability参数确定了哪些用户角色有权访问您的子菜单。在上面的示例中,我们将它设置为“manage_options”,这意味着只有拥有“管理选项”权限的用户才能访问这个菜单。

在 WordPress 中,默认可以在以下菜单下注册子菜单:

  1. Dashboard (仪表盘)
  2. Posts (文章)
  3. Media (媒体)
  4. Pages (页面)
  5. Comments (评论)
  6. Appearance (外观)
  7. Plugins (插件)
  8. Users (用户)
  9. Tools (工具)
  10. Settings (设置)

要注册子菜单,可以使用 add_submenu_page() 函数。例如,如果你想在“Appearance”菜单下添加一个子菜单,“Customize”,可以通过以下代码实现:

function my_custom_submenu() {
    add_submenu_page(
        'themes.php', // 父菜单 slug
        __( 'Customize', 'my-textdomain' ), // 子菜单标题
        __( 'Customize', 'my-textdomain' ), // 子菜单标题
        'manage_options', // 用户权限
        'customize.php' // 子菜单 slug
    );
}
add_action( 'admin_menu', 'my_custom_submenu' ); 

这段代码将在 “Appearance” 菜单下添加一个名为“Customize”的子菜单。当然,可以根据你的需求稍微调整参数。

add_submenu_page函数中类似'options-general.php'可用的默认参数还有以下几个:

  1. index.php:指向网站的控制面板主页面。
  2. edit.php:指向文章、页面、媒体等所有可编辑内容的列表页面。
  3. upload.php:指向媒体库的上传页面。
  4. link-manager.php:指向链接管理器的列表页面。
  5. edit-comments.php:指向评论管理页面。

以下是使用add_submenu_page函数创建子菜单页面的示例代码:

function my_plugin_menu() {
    add_menu_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-plugin', 'my_plugin_options' );
    add_submenu_page( 'my-plugin', 'Submenu Page 1', 'Submenu Page 1', 'manage_options', 'my-plugin-subpage-1', 'my_plugin_subpage_1' );
    add_submenu_page( 'my-plugin', 'Submenu Page 2', 'Submenu Page 2', 'manage_options', 'my-plugin-subpage-2', 'my_plugin_subpage_2' );
}
add_action( 'admin_menu', 'my_plugin_menu' );

function my_plugin_options() {
    // Main page content goes here
}

function my_plugin_subpage_1() {
    // Subpage 1 content goes here
}

function my_plugin_subpage_2() {
    // Subpage 2 content goes here
} 

阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228

大家谈论
    我的见解
    目录