在 WordPress 中,add_submenu_page() 函数用于在后台管理菜单的指定父菜单下添加一个子菜单项,需传入父菜单别名、页面标题、菜单标题、权限要求、菜单别名和回调函数等参数。
要向 WordPress 管理添加新的子菜单,请使用该add_submenu_page()功能。
add_submenu_page(
string $parent_slug,
string $page_title,
string $menu_title,
string $capability,
string $menu_slug,
callable $function = ''
);
例子
假设我们想在“工具”顶级菜单中添加一个子菜单“WPOrg 选项”。
第一步是创建一个输出 HTML 的函数。在这个函数中,我们将执行必要的安全检查,并渲染使用Settings API注册的选项。
我们建议使用<div>带有 类的来包装您的 HTML wrap。
function wporg_options_page_html() {
// check user capabilities
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
?>
<div class="wrap">
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
<form action="options.php" method="post">
<?php
// output security fields for the registered setting "wporg_options"
settings_fields( 'wporg_options' );
// output setting sections and their fields
// (sections are registered for "wporg", each field is registered to a specific section)
do_settings_sections( 'wporg' );
// output save settings button
submit_button( __( 'Save Settings', 'textdomain' ) );
?>
</form>
</div>
<?php
}
第二步是注册我们的WPOrg选项子菜单。注册需要在admin_menu动作钩子期间进行。
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() 。
$parent_slug如果我们有辅助函数来定义WordPress 内置的顶级菜单并节省我们手动通过源代码搜索的时间,那不是很好吗?
以下是父级 slug 及其辅助函数的列表:
添加仪表板页面() –index.php
add_posts_page() –edit.php
add_media_page() –upload.php
添加页面edit.php?post_type=page
添加评论页面() –edit-comments.php
添加主题页面() –themes.php
add_plugins_page() –plugins.php
add_users_page() –users.php
add_management_page() –tools.php
添加选项页面() –options-general.php
添加选项页面() –settings.php
add_links_page() – link-manager.php– 自 WP 3.5+ 起需要插件
自定义帖子类型 –edit.php?post_type=wporg_post_type
网络管理员 –settings.php
删除子菜单的过程与删除顶级菜单完全相同。
提交表单
处理子菜单中的表单提交的过程与提交顶级菜单中的表单的过程完全相同。
add_submenu_page()以及预定义子菜单的所有功能(add_dashboard_page、add_posts_page等)将返回一个$hookname,您可以将其用作第一个参数,add_action以处理自定义页面中的表单提交:
function wporg_options_page() {
$hookname = add_submenu_page(
'tools.php',
'WPOrg Options',
'WPOrg Options',
'manage_options',
'wporg',
'wporg_options_page_html'
);
add_action( 'load-' . $hookname, 'wporg_options_page_html_submit' );
}
add_action('admin_menu', 'wporg_options_page');
与往常一样,不要忘记检查表单是否正在提交,并进行 CSRF 验证、确认和清理。
要在 WordPress 上创建子菜单,请转到网站仪表盘,外观 > 菜单,然后创建或选择包含子菜单的现有菜单。您只需将元素拖到父元素下方,并将其稍微向右移动,即可形成层次结构。
子菜单是菜单中的菜单——它们允许您向现有的自动话务员菜单添加分支。子菜单是作为子菜单附加到另一个菜单的菜单节点。
在 WordPress 管理菜单上,点击“外观”>“菜单”,并确保显示您想要使用的菜单。在左侧栏中展开“自定义链接”类别。输入您希望菜单项显示的链接文本。
WordPress 中的 admin_menu 钩子用于向管理仪表板添加菜单项。它允许开发人员通过添加新项目或修改现有项目来自定义管理菜单。
如果您已经完成了 WordPress 管理面板的默认菜单,或者想要根据您的需求进行自定义
通过使用菜单和子菜单自定义 WordPress 管理面板,可以更轻松地导航 WordPress 管理面板。
在这篇文章中,我们将引导您完成使用简单代码片段添加菜单和子菜单的步骤。
无论您是想整理插件设置还是创建自定义选项,添加菜单都能让您的 WordPress 管理区域更加个性化,更加用户友好。但首先,让我们先了解一些基础知识。
菜单是您通常在 WordPress 管理侧边栏中注意到的主要项目,例如“帖子”、“页面”和“设置”。
然而,子菜单是主菜单下列出的选项。例如,在“帖子”下,您会找到“所有帖子”和“添加新帖子”等子菜单。简而言之,子菜单是主菜单下列出的选项。
现在您一定想知道如何在 WordPress 管理仪表板中添加自定义菜单。
嗯,这并不是那么棘手,您只需使用该add_menu_page()功能即可。
您可以遵循以下简单的分步方法:
1.打开主题functions.php文件:
您可以通过转到 WordPress 仪表板,导航到“外观”>“主题文件编辑器”,然后选择文件来找到该文件functions.php。
2.添加以下代码:
function custom_plugin_menu() {
add_menu_page(
'My Custom Plugin', // Page title
'My Plugin', // Menu title
'manage_options', // Capability required
'my-plugin', // Menu slug (unique identifier)
'my_plugin_page', // Callback function to display page content
'', // Icon URL (leave empty for default icon)
6 // Position on the menu (optional)
);
}
add_action('admin_menu', 'custom_plugin_menu');
// Callback function to display the menu page content
function my_plugin_page() {
echo '<h1>Welcome to My Plugin Page!</h1>';
}
3.保存更改:
添加代码后,保存functions.php文件。新的“我的插件”菜单现在应该出现在 WordPress 管理侧边栏中。
如果您想在新的自定义菜单下添加 WordPress 管理菜单的二级子菜单,请使用此add_submenu_page()功能。操作方法如下:
1. 添加子菜单代码functions.php:
function custom_plugin_submenu() {
// Adding the top-level menu first
add_menu_page(
‘My Custom Plugin’,
‘My Plugin’,
‘manage_options’,
‘my-plugin’,
‘my_plugin_page’
);
// Adding submenus
add_submenu_page(
‘my-plugin’, // Parent slug
‘Add Product’, // Page title
‘Add Product’, // Submenu title
‘manage_options’, // Capability required
‘add-product’, // Submenu slug
‘add_product_page’ // Callback function
);
add_submenu_page(
‘my-plugin’,
‘About Us’,
‘About Us’,
‘manage_options’,
‘about-us’,
‘about_us_page’
);
}
add_action(‘admin_menu’, ‘custom_plugin_submenu’);
// Callback function for ‘Add Product’ submenu
function add_product_page() {
echo ‘<h1>Add Your Product Here!</h1>’;
}
// Callback function for the ‘About Us’ submenu
function about_us_page() {
echo ‘<h1>About Our Plugin</h1>’;
}
2.保存文件:
您的子菜单“添加产品”和“关于我们”现在将出现在管理面板的“我的插件”菜单下。
菜单标识符:这是菜单的唯一标识符。它应该小写,可以包含短划线或下划线。
权限:控制哪些人可以看到菜单。例如,'manage_options'通常只有管理员用户可以看到。
位置:决定菜单在列表中的显示位置。它是可选的,但有助于组织菜单。
页面标题:当您打开菜单或子菜单时,它会出现在浏览器的标题栏中。
菜单标题:这是出现在侧边栏中的文本。
回调函数:当点击菜单或子菜单时运行此函数,显示其内容。
以上示例是我们创建的自定义菜单。但是 WordPress 管理员中现有的菜单怎么办?
方法如下:
将子菜单添加到默认 WordPress 菜单
之前,我们讨论了如何在 WordPress 的自定义菜单下添加子菜单。现在,我们来看看如何在 WordPress 现有的默认菜单(例如仪表盘、文章、页面等)下添加子菜单。
WordPress 提供了特定的功能来向这些默认菜单添加子菜单:
– add_dashboard_page:在“仪表板”菜单下添加子菜单。
– add_posts_page:在“帖子”菜单下添加子菜单。
– add_media_page:在“媒体”菜单下添加子菜单。
– add_links_page:在“链接”菜单下添加子菜单。
– add_pages_page:在“页面”菜单下添加子菜单。
– add_comments_page:在“评论”菜单下添加子菜单。
– add_theme_page:在“主题”菜单下添加子菜单。
– add_plugins_page:在“插件”菜单下添加子菜单。
– add_users_page:在“用户”菜单下添加子菜单。
– add_management_page:在“工具”菜单下添加子菜单。
– add_options_page:在“设置”菜单下添加子菜单。
所有这些功能的工作原理都类似。让我们通过一个简单的例子来更好地理解它:使用在“设置”菜单下添加一个子菜单add_options_page()。
要在“设置”下添加子菜单,您可以使用该add_options_page()功能。以下是该功能的简单分解:
add_options_page($page_title, $menu_title, $capability, $menu_slug, $function);
– $page_title:打开页面时的标题。
– $menu_title:在“设置”下的侧边栏中显示的名称。
– $capability:谁可以看到此子菜单(例如只有管理员)。
– $menu_slug:此子菜单的唯一 ID。
– $function:点击子菜单时显示内容的功能。
例如,像下面这样使用此功能:
add_options_page('My Plugin', 'My Plugin', 'manage_options', 'my-plugin', 'WPOven_plugin_render_options_page');
– 此代码在“设置”菜单下添加了一个名为“我的插件”的子菜单。
– 只有具有“ manage_options ”功能的用户(通常是管理员)才能看到它。
– 点击后会运行函数WPOven_plugin_render_options_page显示页面内容。
这就是您可以向默认 WordPress 菜单添加子菜单的方法,从而更轻松地访问您想要添加的自定义设置或页面!
在 WordPress 中添加自定义菜单和子菜单是根据您的方便自定义管理的好方法。
最棒的是,您只需几行代码即可轻松实现并执行此功能。这将帮助您为自己或客户创建一个更有条理、更易于访问的后端。
按照这些步骤操作,你很快就能拥有一个自定义的管理面板。如果你对这篇文章有任何疑问或反馈,请在下方评论区留言。