WordPress 插件开发教程:管理菜单 2024-08-17 作者 C3P00 在开发 WordPress 插件时,管理菜单是一个重要的部分。它位于后台左侧,允许我们为插件或主题添加自定义设置页面。本文将带您逐步了解如何创建和管理这些菜单。 1. 添加顶级菜单 知识点:如果我们需要在 WordPress 后台添加一个顶级菜单,可以使用 add_menu_page() 函数。这个函数允许开发者在后台左侧的菜单中添加一个新的顶级菜单项。以下是函数的基本结构: add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '', string $icon_url = '', int $position = null ); 显示内容解析:$page_title 是菜单页面的标题,$menu_title 是菜单在后台显示的名称,$capability 决定了哪些用户可以看到这个菜单,$menu_slug 是菜单的唯一标识符,$function 是点击菜单后执行的回调函数,$icon_url 设置菜单的图标,$position 决定菜单的位置。 速记句:add_menu_page 函数用于在 WordPress 后台添加一个顶级菜单。 2. 创建 HTML 输出函数 知识点:为了使菜单页面有内容展示,我们需要创建一个输出 HTML 的函数。在这个函数中,可以执行必要的安全检查,并使用 WordPress 的设置 API 来显示注册的选项。 function wporg_options_page_html() { if (!current_user_can('manage_options')) { return; } ?> <div class="wrap"> <h1><?= esc_html(get_admin_page_title()); ?></h1> <form action="options.php" method="post"> <?php settings_fields('wporg_options'); do_settings_sections('wporg'); submit_button('Save Settings'); ?> </form> </div> <?php } 显示内容解析:此函数首先检查当前用户是否有足够的权限来访问该页面。接着,它使用 settings_fields() 和 do_settings_sections() 函数输出安全字段和设置字段,然后添加一个提交按钮。 速记句:为菜单页面创建输出 HTML 的函数,并进行权限检查和设置显示。 3. 注册顶级菜单 知识点:将创建好的 HTML 输出函数挂载到 admin_menu 钩子上,实现菜单的注册。 function wporg_options_page() { add_menu_page( 'WPOrg', 'WPOrg Options', 'manage_options', 'wporg', 'wporg_options_page_html', plugin_dir_url(__FILE__) . 'images/icon_wporg.png', 20 ); } add_action('admin_menu', 'wporg_options_page'); 显示内容解析:通过 add_menu_page() 添加顶级菜单,其中回调函数 wporg_options_page_html 用于输出页面内容。而 admin_menu 钩子确保菜单在后台管理中被正确注册。 速记句:使用 admin_menu 钩子注册顶级菜单。 4. 添加子菜单 知识点:当我们需要在某个现有的顶级菜单下添加子菜单时,可以使用 add_submenu_page() 函数。 add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $function = '' ); 显示内容解析:$parent_slug 是父级菜单的标识符,$page_title 和 $menu_title 分别是页面标题和菜单名称,其他参数与 add_menu_page() 类似。这个函数让我们轻松地为已有的顶级菜单添加子菜单。 function wporg_options_page() { add_submenu_page( 'tools.php', 'WPOrg Options', 'WPOrg Options', 'manage_options', 'wporg', 'wporg_options_page_html' ); } add_action('admin_menu', 'wporg_options_page'); 速记句:add_submenu_page 函数用于为顶级菜单添加子菜单。 5. 删除菜单 知识点:如果需要删除已注册的顶级菜单或子菜单,可以使用 remove_menu_page() 或 remove_submenu_page() 函数。 function wporg_remove_options_page(){ remove_menu_page('tools.php'); } add_action('admin_menu', 'wporg_remove_options_page', 99); 显示内容解析:remove_menu_page() 删除顶级菜单,但不会阻止用户直接访问它。删除操作应在菜单注册之后执行,因此 Action 的优先级应设置得较高。 速记句:remove_menu_page 和 remove_submenu_page 用于删除菜单。 总结 本文介绍了如何在 WordPress 插件开发中添加和管理后台菜单。我们学习了如何添加顶级菜单和子菜单,如何创建用于页面展示的 HTML 输出函数,以及如何删除菜单。通过这些知识,您可以为插件创建用户友好的后台设置页面。 参考文献: WordPress 插件开发手册 – 管理菜单 (https://www.wpzhiku.com/document/plugins-administration-menus/) WordPress Codex – add_menu_page() 函数文档 WordPress Codex – add_submenu_page() 函数文档
在开发 WordPress 插件时,管理菜单是一个重要的部分。它位于后台左侧,允许我们为插件或主题添加自定义设置页面。本文将带您逐步了解如何创建和管理这些菜单。
1. 添加顶级菜单
知识点:
如果我们需要在 WordPress 后台添加一个顶级菜单,可以使用
add_menu_page()
函数。这个函数允许开发者在后台左侧的菜单中添加一个新的顶级菜单项。以下是函数的基本结构:$page_title
是菜单页面的标题,$menu_title
是菜单在后台显示的名称,$capability
决定了哪些用户可以看到这个菜单,$menu_slug
是菜单的唯一标识符,$function
是点击菜单后执行的回调函数,$icon_url
设置菜单的图标,$position
决定菜单的位置。速记句:
add_menu_page
函数用于在 WordPress 后台添加一个顶级菜单。2. 创建 HTML 输出函数
知识点:
为了使菜单页面有内容展示,我们需要创建一个输出 HTML 的函数。在这个函数中,可以执行必要的安全检查,并使用 WordPress 的设置 API 来显示注册的选项。
此函数首先检查当前用户是否有足够的权限来访问该页面。接着,它使用
settings_fields()
和do_settings_sections()
函数输出安全字段和设置字段,然后添加一个提交按钮。速记句:
为菜单页面创建输出 HTML 的函数,并进行权限检查和设置显示。
3. 注册顶级菜单
知识点:
将创建好的 HTML 输出函数挂载到
admin_menu
钩子上,实现菜单的注册。通过
add_menu_page()
添加顶级菜单,其中回调函数wporg_options_page_html
用于输出页面内容。而admin_menu
钩子确保菜单在后台管理中被正确注册。速记句:
使用
admin_menu
钩子注册顶级菜单。4. 添加子菜单
知识点:
当我们需要在某个现有的顶级菜单下添加子菜单时,可以使用
add_submenu_page()
函数。$parent_slug
是父级菜单的标识符,$page_title
和$menu_title
分别是页面标题和菜单名称,其他参数与add_menu_page()
类似。这个函数让我们轻松地为已有的顶级菜单添加子菜单。速记句:
add_submenu_page
函数用于为顶级菜单添加子菜单。5. 删除菜单
知识点:
如果需要删除已注册的顶级菜单或子菜单,可以使用
remove_menu_page()
或remove_submenu_page()
函数。remove_menu_page()
删除顶级菜单,但不会阻止用户直接访问它。删除操作应在菜单注册之后执行,因此 Action 的优先级应设置得较高。速记句:
remove_menu_page
和remove_submenu_page
用于删除菜单。总结
本文介绍了如何在 WordPress 插件开发中添加和管理后台菜单。我们学习了如何添加顶级菜单和子菜单,如何创建用于页面展示的 HTML 输出函数,以及如何删除菜单。通过这些知识,您可以为插件创建用户友好的后台设置页面。
参考文献: