zh-cn:Adding Administration Menus

概述

通常情况下,插件和主题的作者都需要为其提供一个配置界面,以方便用户去自定义它们。将这个配置界面展示给用户的最好方式,就是在后台管理员界面的配置菜单中添加一个选项,然后当用户点击这个选项的时候再去打开它。这篇文章将会告诉你如何去实现这样的事情。

注意:在继续阅读之前,你应当对如何写一个插件,以及Actions和Filters的插件API函数有一定的了解。

一切皆需钩子

想要向管理员界面的配置菜单中添加一个选项,你必须要完成三件事:

  1. 定义一个函数,使其能够创建菜单选项,并调出菜单的配置界面

  2. 将这个函数挂载到名为admin_menu的Action钩子上。(如果你需要创建的是与网络相关的菜单选项,那么就需要将该函数挂载到network_admin_menu钩子上)。

  3. 编写当用户点击菜单选项时,需要显示出的配置页面的内容。

第二步是新手们往往会忽略掉的步骤。必须要记住:光写出代码是不够的,你还必须要把这段代码放到一个函数中,并且把这个函数挂载到相应的钩子上,它才能发挥相应的作用。

以下是包含这三个步骤的简单示例。这个插件将会在设置菜单的主选项下创建一个子选项,当该选项被点击时,将会显示出一个非常简单的页面。

注意:这些代码应当被写到PHP主文件中,或是一个单独的PHP文件中。

<?php
/** 第1步:定义添加菜单选项的函数 */
function my_plugin_menu() {
     add_options_page( 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options' );
}

/** 第2步:将函数注册到钩子中 */
add_action( 'admin_menu', 'my_plugin_menu' );

/** 第3步:定义选项被点击时打开的页面 */
function my_plugin_options() {
     if ( !current_user_can( 'manage_options' ) )  {
          wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
     }
     echo '<div class="wrap">';
     echo '<p>Here is where the form would go if I actually had options.</p>';
     echo '</div>';
}
?>

在第1步中,my_plugin_menu()函数的作用是通过调用add_options_page()函数,向管理员界面的配置菜单中添加一个新的菜单选项(关于更复杂的多级选项,将在之后进行详述)。

在第2步中,add_action()函数的作用就是将第1步中定义的my_plugin_menu()函数,挂载到名为admin_menu的钩子下。此时如果忘了调用add_action()函数的话,那么在你试图激活这个插件时就会提示'undefined function'错误。

在最后一步中,my_plugin_options()函数的作用就是显示一个配置页面,并显示出用户可配置的内容(可以由PHP的代码编写),这个函数也是在第1步中的add_action()函数中被调用的。这样当用户点击菜单选项的时候,就会弹出这个配置页面。


你可能感兴趣的:(zh-cn:Adding Administration Menus)