借一步网
作者:
在
在开发 WordPress 插件时,管理菜单是一个重要的部分。它位于后台左侧,允许我们为插件或主题添加自定义设置页面。本文将带您逐步了解如何创建和管理这些菜单。
知识点:如果我们需要在 WordPress 后台添加一个顶级菜单,可以使用 add_menu_page() 函数。这个函数允许开发者在后台左侧的菜单中添加一个新的顶级菜单项。以下是函数的基本结构:
add_menu_page()
add_menu_page( string menu_title, string menu_slug, callable icon_url = '', int page_title 是菜单页面的标题,capability 决定了哪些用户可以看到这个菜单,function 是点击菜单后执行的回调函数,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 page_title, string capability, string function = '' ); 显示内容解析: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() 函数文档
add_menu_page( string menu_title, string menu_slug, callable icon_url = '', int page_title
capability
function
position
速记句:add_menu_page 函数用于在 WordPress 后台添加一个顶级菜单。
add_menu_page
知识点:为了使菜单页面有内容展示,我们需要创建一个输出 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 page_title, string capability, string function = '' ); 显示内容解析: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() 函数文档
settings_fields()
do_settings_sections()
速记句:为菜单页面创建输出 HTML 的函数,并进行权限检查和设置显示。
知识点:将创建好的 HTML 输出函数挂载到 admin_menu 钩子上,实现菜单的注册。
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 page_title, string capability, string function = '' ); 显示内容解析: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() 函数文档
wporg_options_page_html
速记句:使用 admin_menu 钩子注册顶级菜单。
知识点:当我们需要在某个现有的顶级菜单下添加子菜单时,可以使用 add_submenu_page() 函数。
add_submenu_page()
add_submenu_page( string page_title, string capability, string function = '' );
显示内容解析: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() 函数文档
page_title
$menu_title
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 函数用于为顶级菜单添加子菜单。
add_submenu_page
知识点:如果需要删除已注册的顶级菜单或子菜单,可以使用 remove_menu_page() 或 remove_submenu_page() 函数。
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() 函数文档
速记句:remove_menu_page 和 remove_submenu_page 用于删除菜单。
remove_menu_page
remove_submenu_page
本文介绍了如何在 WordPress 插件开发中添加和管理后台菜单。我们学习了如何添加顶级菜单和子菜单,如何创建用于页面展示的 HTML 输出函数,以及如何删除菜单。通过这些知识,您可以为插件创建用户友好的后台设置页面。
参考文献:
要发表评论,您必须先登录。
在开发 WordPress 插件时,管理菜单是一个重要的部分。它位于后台左侧,允许我们为插件或主题添加自定义设置页面。本文将带您逐步了解如何创建和管理这些菜单。
1. 添加顶级菜单
知识点:
如果我们需要在 WordPress 后台添加一个顶级菜单,可以使用
add_menu_page()
函数。这个函数允许开发者在后台左侧的菜单中添加一个新的顶级菜单项。以下是函数的基本结构: