创建 WordPress 插件(第一部分):添加管理页面
WordPress 是互联网上最受欢迎的内容管理系统之一。它是用 PHP 创建的,可以处理从博客到商业网站的一切需求。事实上,我们的博客和网站都使用 WordPress。在本文中,我将向你展示如何创建一个 WordPress 插件,该插件会在管理员控制台中创建一个菜单项及对应的页面。
Hello World!
让我们从一个简单的插件开始,它会在所有页面上显示“Hello World!”。
<?php
/*
Plugin Name: Test plugin
Description: A test plugin to demonstrate wordpress functionality
Author: Simon Lissack
Version: 0.1
*/
echo "<h1>Hello world!</h1>";
?>
插件的入口文件需要包含一个头部注释,这是 WordPress 用来识别插件的标志。这个头部注释仅对插件的主文件是必需的(其他 PHP 文件可以通过 include 或 require_once 引入)。至少需要在头部注释中包含“Plugin Name”,插件才能显示在插件子目录中。保存文件时,请确保它位于 WordPress 安装目录的“wp-content/plugins”子目录中。我建议将插件放在该目录下的一个子文件夹中,以便更好地组织管理。
启用插件时,进入 WordPress 管理面板,选择“插件”菜单选项。找到新插件并激活它。激活后,网站的每个页面左上角都会显示“Hello World!”。尽管这种方式不太实用,但可以帮助我们了解 WordPress 插件的工作原理。WordPress 对插件的处理方式使其具有很高的可插拔性。当一个插件被激活时,WordPress 会运行插件的主 PHP 文件。这意味着我们需要控制插件的激活时机。
创建一个新的管理面板
现在我们已经知道如何让 WordPress 识别一个插件了,可以继续创建一个有实际用途的插件。一个好的起点是在侧边栏创建一个菜单项,允许我们在管理控制台中添加一个页面。这对于让 WordPress 网站的管理员配置插件非常有用。
为此,我们需要挂钩到加载管理菜单的操作。当 WordPress 加载一个页面时,会运行一系列的操作,我们可以使用 add_action 函数将我们的代码挂钩到其中。在下面的代码中,我们将在管理面板中创建一个菜单项,点击后会跳转到一个显示“Hello World!”的页面。
<?php
/*
Plugin Name: Test plugin
Description: A test plugin to demonstrate wordpress functionality
Author: Simon Lissack
Version: 0.1
*/
add_action('admin_menu', 'test_plugin_setup_menu');
function test_plugin_setup_menu(){
add_menu_page( 'Test Plugin Page', 'Test Plugin', 'manage_options', 'test-plugin', 'test_init' );
}
function test_init(){
echo "<h1>Hello World!</h1>";
}
?>
以下是相关函数的介绍:
add_action('admin_menu', 'test_plugin_setup_menu');
这里,我们将代码挂钩到管理菜单开始加载的时刻,并告诉 WordPress 我们想运行 test_plugin_setup_menu
函数,这个函数稍后会定义。
add_menu_page('Test Plugin Page', 'Test Plugin', 'manage_options', 'test-plugin', 'test_init');
以上代码是我们添加菜单页面和菜单项的地方。第一个参数 'Test Plugin Page'
是选项页面的标题。第二个参数 'Test Plugin'
是管理面板上的菜单标签。第三个参数用于限制访问权限,只有具有特定权限的用户才能看到该菜单项。第四个参数 'test-plugin'
是用于标识菜单的 slug。最后一个参数 'test_init'
是我们选择菜单项时需要调用的函数名,用于输出页面的 HTML。在这个例子中,我们只是简单地输出“Hello World!”。现在,我们已经设置了一个选项页面,可以作为进一步探索 WordPress 功能的基础。
如果想了解更多关于创建 WordPress 插件的信息,我建议查阅官方的 Codex 文档,那里有非常详细的说明。
下一篇:如何在插件中使用 Web 服务。