黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)

本文是WordPress企业建站系列教程的第三篇文章,需要说明的是,如果想你学习这个企业建站的系列教程,需要你有一点点的WordPress主题或PHP开发基础,没有基础的也可以依样画葫芦,出错了可以给我留言。

     在本系列教程的第一篇文章 WordPress后台删除不需要的侧边栏菜单 中,我已经详细介绍了如何删除WordPress后台不必要的菜单,现在我再给大家介绍一下如果往WordPress后台的侧边栏添加自己定义的菜单。

一、添加顶级菜单

     往WordPress后台添加侧边栏菜单有什么用呢?之前你可能用过一些插件或者一些主题,它们提供了属于自己的一个菜单,点击进入这个 菜单可以设置插件或主题的选项,或者给使用提供一些使用说明,这大大扩展了WordPress的功能,也方便用户去使用这些插件或主题,何乐而不为呢?其 实我们在做一些WordPress主题的时候,WordPress提供的菜单仅限于设置WordPress本身自带的功能,当WordPress的功能被 扩展后,这些自带的菜单已经不能满足我们的要求了,所以添加自定义菜单也成了WordPress主题开发者的一项迫切需求。

     添加WordPress顶级管理菜单其实也是一件非常简单的事情,使用两个WordPress内置函数就可以解决问题,分别是add_menu_page()add_action(),下面我提供一个php示例代码,添加到主题目录下的functions.php中就可以了:

黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)
/**
* 名称:WordPress后台添加顶级菜单
* 作者:露兜
* 博客:http://www.ludou.org/
* 最后修改:2011年01月26日
*/

// my_add_pages() 为 'admin_menu' 钩子的回调函数
function my_add_pages() {
// 第一个参数'Help page'为菜单名称,第二个参数'使用帮助'为菜单标题
// 'manage_options' 参数为用户权限
// 'my_toplevel_page' 参数用于调用my_toplevel_page()函数,来显示菜单内容
add_menu_page('Help page', '使用帮助', 'manage_options', __FILE__, 'my_toplevel_page');
}

// my_toplevel_page() 用于显示菜单的内容,填写菜单页面的HTML代码即可
function my_toplevel_page() {
echo '
这里填菜单页面的HTML代码
';

// 如以下示例代码。 wrap 类是WordPress构建好的css类,可以在你的HTML代码中使用
/*
echo '
<div class="wrap">
<h2>使用帮助</h2>
<p>这里是使用帮助,通过阅读本文你将了解本程序的使用!有事请<a href="#">与我联系</a></p>
</div>
';
*/
}

// 通过add_action来自动调用my_add_pages函数
add_action('admin_menu', 'my_add_pages');
黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)

    上面的代码注释已经比较清晰的介绍了主要内容,下面我再补充一点,关于add_menu_page的第三个参数,上面代码中传递了 manage_options 这个值,这个参数值为用户权限,也就是说只当当前已登录的用户具有manage_options这项权限时,才会在后台侧边栏显示你添加的这个菜单。需要提醒的是,这个是权限参数在WordPress 3.0中已被重新定义,之前版本可以往这个参数传递用户等级(1-10),但是如果你使用的是3.0以后的版本,请传递用户权限值。

     关于各个用户角色所具有的权限,可以参看这个对应关系表:Capability vs. Role Table,横坐标是用户角色,纵坐标是用户权限,中间蓝色高亮部分为各个角色所拥有的权限,英文也比较好理解,不懂可以找在线翻译。最后上张图片,添加以上代码后,可以看到后台多了一个 使用帮助 的顶级菜单:

黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)

二、添加侧边栏子菜单

     所有的侧边栏子菜单,也就是在WordPress现有的菜单中,添加对应的子菜单,如往工具菜单中添加一个子菜单备份

黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)

     以下是php示例代码,添加到主题目录下的functions.php中就可以了:

黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)
/**
* 名称:WordPress后台添加侧边栏子菜单
* 作者:露兜
* 博客:http://www.ludou.org/
* 最后修改:2011年01月26日
*/

function my_add_submenu() {
add_submenu_page( 'tools.php', 'my_backup', '备份', 'manage_options', 'backup-page', 'my_magic_function');
}

// 用于显示菜单的内容,填写菜单页面的HTML代码即可
function my_magic_function() {
echo '
这里填菜单页面的HTML代码
';

// echo '
// <div class="wrap">
// <h2>备份</h2>
// <p>这里可以备份你的博客数据库。</a></p>
// </div>
// ';
}

// 通过add_action来自动调用my_add_submenu函数
add_action('admin_menu', 'my_add_submenu');
黄聪:WordPress后台添加侧边栏菜单(WP教程add_menu_page)
 

     添加子菜单主要通过add_submenu_page()函数来实现,这个函数有很多参数,下面我来介绍这几个参数的作用。下面是该函数的原型:

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

$parent_slug
     这个参数为WordPress内置菜单的文件名称或缩略名,这里我们通常采用菜单文件名的方式。传递这个参数,就说明要往这个顶级菜单添加子菜 单,以上示例代码中传递的值为 tools.php ,对应工具顶级菜单,下面提供这个参数的所有值及其对应的顶级菜单:

  • index.php:控制板
  • edit.php:文章
  • upload.php:媒体
  • link-manager.php:链接
  • edit.php?post_type=page:页面
  • edit-comments.php:评论
  • themes.php:主题
  • plugins.php:插件
  • users.php:用户
  • tools.php:工具
  • options-general.php:设置

$page_title
     这个参数是子菜单的标题,将会显示在浏览器的标题栏。

$menu_title
     这个是子菜单的名称,将会显示在侧边栏

$capability
     用户权限,这个定义了具有哪些权限的用户会看到这个子菜单,具体的参数值,可以参考上面第一部分的顶级菜单的说明。

$menu_slug
     子菜单的缩略名,请使用一个唯一的名称,英文形式。

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

结语

     本次的教程到此就结束了,这部分内容我只是提供了添加顶级菜单和子菜单的基本方法,至于这个菜单中怎么添加选项,怎么添加内容,怎么写 css把页面弄得很漂亮,这些就要靠你们自己去写html和css了。相比之前的几个教程,本次教程对你的PHP能力的要求也有所提高,如果你不会 PHP,但是又想搞WordPress开发,建议你还是先去学学PHP吧。

相关推荐