代码
/**
* Plugin Name: zxz_admin_menu_custom
* Description: Admin menu customized test!
* Author: Xianzhong Zhu
* Author URI: https://zhuxianzhong.blog.51cto.com
* Version: 1.0.0
* License: GPLv2+
*
* Php Version 7.0
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version 2021-11-23
*/
add_action( 'admin_menu', 'zxz_admin_menu_custom_callback' );
function zxz_admin_menu_custom_callback() {
// 创建顶级菜单
add_menu_page(
'我的插件定制页面',
'菜单定制测试',
'manage_options',
__FILE__,
'zxz_admin_menu_settings_page_callback',
'dashicons-admin-customizer'
);
// 创建子菜单
add_submenu_page(
__FILE__,
'About My Plugin',
'关于',
'manage_options',
__FILE__.'_about',
'zxz_admin_menu_about_page_callback'
);
add_submenu_page(
__FILE__,
'Help with My Plugin',
'帮助',
'manage_options',
__FILE__.'_help',
'zxz_admin_menu_help_page_callback'
);
add_submenu_page(
__FILE__,
'Uninstall My Plugin',
'卸载',
'manage_options',
__FILE__.'_uninstall',
'zxz_admin_menu_uninstall_page_callback'
);
}
function zxz_admin_menu_settings_page_callback(){
echo 'Hello, this is top setting page';
}
function zxz_admin_menu_about_page_callback(){
<div class="wrap">
<span class="dashicons dashicons-menu-alt3"></span>
<h2>This is the About page...</h2>
</div>
}
function zxz_admin_menu_help_page_callback(){
<div class="wrap">
<span class="dashicons dashicons-menu-alt3"></span>
<h2>Help page...</h2>
</div>
}
function zxz_admin_menu_uninstall_page_callback(){
<div class="wrap">
<h2>Uninstall page...</h2>
</div>
}
效果图
主要知识点
- add_action( 'admin_menu', 'zxz_admin_menu_custom_callback' );
- add_submenu_page(...)
- Dashicons
- PHP、HTML混合编程
补充:向已经存在的菜单中添加一个菜单项
如果你的菜单只有一个单独的设置页面,就没必要创建一个自定义的顶级菜单了。你可以简单地把它添加到已经存在的管理菜单项下面,例如 Settings 菜单。
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函数为例,它用于向Settings一级菜单下添加一个子菜单项。该函数的语法格式是:
add_options_page( page_title, menu_title, capability, menu_slug, function );
参考代码如下:
add_action( 'admin_menu', 'zxz_adminmenu_submenu' );
function zxz_adminmenu_submenu() {
// 在 Settings 下添加子菜单
add_options_page(
'My Plugin Settings Page',
'Menu Example Settings',
'manage_options',
__FILE__,
'zxz_adminmenu_settings_page'
);
}