明凯博客

关注网站技术,一个特立独行的程序员

wordpress后台添加顶级菜单和子菜单的方法

在 wordpress 插件、主题等制作过程中,经常需要在后台添加菜单,今儿分享一下在 wordpress 后台侧边栏添加顶级菜单的方法,也算加深一下印象吧,用到的函数是:add_menu_page()

函数用法:

1
add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

下面说说各参数:

$page_title:(字符串) (必须) 这个参数是子菜单的标题,将会显示在浏览器的标题栏,默认为空;

$menu_title:(字符串) (必须) 显示的菜单名称,默认为空;

$capability:(字符串) (必须) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空,参照capability;

$menu_slug:(字符串) (必须) 显示在URl上面的菜单名称,默认为空;

$function:返回的方法名称;

$icon_url:(字符串) (可选) 显示的菜单图标,可以使用plugin_dir_url( __FILE__ ),图标宽高为16像素;

$position:(整数) (可选) 显示菜单的位置。常用位置,4或者59或者99。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
< ?php
 
add_action('admin_menu', 'register_custom_menu_page');
 
function register_custom_menu_page() {
 
    add_menu_page('自定义菜单标题', '测试菜单', 'administrator', 'myplugin/myplugin-index.php','',plugins_url('myplugin/images/icon.png'), 6);
 
}
 
//然后将下面的代码放到myplugin/myplugin-index.php文件中
 
echo "Admin Page Test";
 
//或者使用下面方法
 
add_action('admin_menu', 'register_custom_menu_page');
 
function register_custom_menu_page(){
 
    add_menu_page('菜单标题', '菜单名称', 'administrator', 'custompage', 'custom_menu_page', plugins_url('myplugin/images/icon.png'), 6);
 
}
 
function custom_menu_page(){
 
    echo "Admin Page Test";
 
}

wordpress 后台侧边栏添加子菜单的方法,用到的函数是:add_submenu_page()

1
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );

下面说说各参数:

$parent_slug:(字符串) (必须)顶级菜单名称,可以在顶级菜单中加入我们的子菜单,也可以在自定义顶级菜单中加入子菜单;

几种情况:

1、在仪表盘添加子菜单: add_submenu_page(‘index.php’, … );

2、在文章处添加子菜单: add_submenu_page(‘edit.php’, … );

3、在媒体处添加子菜单: add_submenu_page(‘upload.php’, … );

4、在链接处添加子菜单: add_submenu_page(‘link-manager.php’, … );

5、在页面处添加子菜单: add_submenu_page(‘edit.php?post_type=page’, … );

6、在评论处添加子菜单: add_submenu_page(‘edit-comments.php’, … );

7、在你自定义文章类型处添加子菜单: add_submenu_page(‘edit.php?post_type=your_post_type’,…)

8、在外观处添加子菜单: add_submenu_page(‘themes.php’, … );

9、在插件处添加子菜单: add_submenu_page(‘plugins.php’, … );

10、在用户处添加子菜单: add_submenu_page(‘users.php’, … );

11、在工具处添加子菜单: add_submenu_page(‘tools.php’, … );

12、在设置处添加子菜单: add_submenu_page(‘options-general.php’, … );

$page_title:(字符串) (必须) 这个参数是子菜单的标题,将会显示在浏览器的标题栏,默认为空;

$menu_title:(字符串) (必须) 显示的菜单名称,默认为空;

$capability:(字符串) (必须) 用户权限,定义了具有哪些权限的用户会看到这个子菜单(权限部分请看文章结尾处),默认为空,参照capability;

$menu_slug:(字符串) (必须) 显示在URl上面的菜单名称,默认为空;

$function:所有调用的函数名称,通过调用这个函数来显示这个子菜单页面的内容。

先上图:

menu1

1、在顶级菜单“工具(tools)”下添加子菜单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< ?php
 
add_action('admin_menu', 'register_my_custom_submenu_page');
 
function register_my_custom_submenu_page() {
 
    add_submenu_page( 'tools.php', '子菜单', '子菜单名称', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page_callback' );
 
}
 
function my_custom_submenu_page_callback() {
 
    echo '<h3>子菜单的页面内容';
 
}
 
?>

2、在自定义的顶级菜单中添加子菜单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
< ?php
 
function add_diy_menu() {
 
    add_menu_page(__('顶级菜单'),__('顶级菜单名称'),8,__FILE__,'my_function_menu');
 
    add_submenu_page(__FILE__,'子菜单1','子菜单名称1',8,'your-admin-sub-menu1','my_function_submenu1');
 
    add_submenu_page(__FILE__,'子菜单2','子菜单名称2',8,'your-admin-sub-menu2','my_function_submenu2');
 
}
 
function my_function_menu() {
 
    echo "<h2>顶级菜单的页面内容";
 
}
 
function my_function_submenu1() {
 
    echo "<h2>子菜单1的页面内容</h2>"; 
 
}
 
function my_function_submenu2() { 
 
    echo "<h2>子菜单2的页面内容</h2>";
 
}
 
add_action('admin_menu','add_diy_menu');
 
?>

,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注