顶级菜单呈现在WordPress管理的左侧。 每个菜单可能包含一组子菜单。
添加顶级菜单
要向WordPress管理添加新的顶级菜单,请使用 add_menu_page()
函数。
<?php
add_menu_page(
string $page_title,
string $menu_title,
string $capability,
string $menu_slug,
callable $function = '',
string $icon_url = '',
int $position = null
);
示例
假设我们要添加一个名为“WPOrg”的顶级菜单。
第一步将创建一个将输出HTML的函数。 在此功能中,我们将执行必要的安全检查,并使用Settings API呈现我们注册的选项。
<?php
function wporg_options_page_html()
{
// check user capabilities
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
// 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');
?>
</form>
</div>
<?php
}
第二步将注册我们的WPOrg菜单。 注册需要在admin_menu操作钩子中进行。
<?php
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()
。
使用PHP文件进行HTML
便携式代码的最佳做法是创建一个需要/包含您的PHP文件的回调。
为了完整性和帮助您了解遗留代码,我们将展示另一种方法:将PHP文件路径作为 $ menu_slug
参数传递一个 null $ function
参数。
<?php
function wporg_options_page()
{
add_menu_page(
'WPOrg',
'WPOrg Options',
'manage_options',
plugin_dir_path(__FILE__) . 'admin/view.php',
null,
plugin_dir_url(__FILE__) . 'images/icon_wporg.png',
20
);
}
add_action('admin_menu', 'wporg_options_page');
删除顶级菜单
要从WordPress管理中删除注册的菜单,请使用 remove_menu_page()
函数。
<?php
remove_menu_page(
string $menu_slug
);
警告:删除菜单不会阻止用户直接访问它们。这绝对不能用来限制用户的功能。
示例
让我们说要从中删除“工具”菜单。
<?php
function wporg_remove_options_page()
{
remove_menu_page('tools.php');
}
add_action('admin_menu', 'wporg_remove_options_page', 99);
在尝试删除之前,请确保已将菜单注册到admin_menu钩子,为 add_action()
指定较高优先级号。