前言
wordpress的二次开发(譬如主题设计、插件开发)要添加许多新的功能,设计者往往需要后台添加新的菜单。而wordrpess本身就提供了相关函数来实现后台添加自定义菜单项功能。
此次我们需要学习的主要是三个函数add_menu_page()、add_submenu_page()、add_theme_page()。
方法
跟以前的思路一样,为了不改变程序文件,我们都是在主题的function中通过调用wordpress提供的函数实现。
函数详解
1.add_menu_page
函数功能:添加顶级菜单
函数形式及参数:
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:(整数) (可选) 显示菜单的位置。默认为底部。注意:如果两个菜单的位置属性重复,将会有菜单覆盖。
2.add_submenu_page
函数功能:添加子菜单
函数形式及参数:
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
参数详解:
· $parent_slug
· (字符串) (必须)顶级菜单名称,可以在顶级菜单中加入我们的子菜单,也可以在自定义顶级菜单中加入子菜单。
· $page_title
· (字符串) (必须) 当点击菜单后将内容显示在标题标签上(Title Tag于浏览器上),默认为空。
· $menu_title
· (字符串) (必须) 显示的菜单名称,默认为空。
· $capability
· (字符串) (必须) 此菜单使用的权限,默认为空,参照capability
· $menu_slug
· (字符串) (必须) 显示在URl上面的菜单名称,默认为空。
· $function
· 返回的方法名称
说明:add_submenu_page函数的使用和上一个函数add_menu_page十分相似,不过上面提到的第一个参数比较特别,常用的几个用法:
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’, … );
3.add_theme_page
add_theme_page( $page_title, $menu_title, $capability, $menu_slug, $function);
说明:其实此函数的用法与添加顶级菜单没什么区别,参数的功能也是一样。唯一的区别就是,此函数添加菜单的位置是在你的“外观”中。
wordpress权限分析:
更改角色名称 添加以下代码至 Functions.php:
1 2 3 4 5 6 7 8 9 10 11 12 |
function wpapi_change_role_name() { global $wp_roles; if ( ! isset( $wp_roles ) ) $wp_roles = new WP_Roles(); //Owner 更改为显示名称 //administrator 更改为用户角色,例如 editor/author/contributor/subscriber $wp_roles->roles['administrator']['name'] = '管理员'; $wp_roles->role_names['administrator'] = '超级版主'; } add_action('init', 'wpapi_change_role_name'); |
4 5 6 7 8 9 10 11 12 13 14 15 |
$result = add_role( 'basic_contributor', __( '新订阅者' ), array( 'read' => true, // 允许阅读文章 'edit_posts' => true, // 允许修改文章 'delete_posts' => false, // 不允许删除文章,以此类推 ) ); if ( null !== $result ) { echo 'Yay! New role created!'; } else { echo 'Oh... the basic_contributor role already exists.'; } |