创建 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 服务。

相关推荐
想太多会累i2 小时前
Spring Boot 使用Itext绘制并导出PDF
spring boot·pdf
zm3 小时前
TCP 粘包
服务器·网络·php
Le_ee7 小时前
sqli-labs靶场第七关——文件导出注入
数据库·sql·网络安全·php·sql注入·sqli—labs
SHIPKING3938 小时前
【HTML】个人博客页面
javascript·css·html
zm8 小时前
UDP 多点通信
开发语言·php
zixingcai9 小时前
Adobe Acrobat pro在一份PDF中插入空白页
pdf·adobe acrobat reader
*neverGiveUp*9 小时前
PHP基础知识
开发语言·php
課代表9 小时前
AcroForm JavaScript Promise 对象应用示例: 异步加载PDF文件
开发语言·javascript·pdf·promise·对象
Yvonne爱编码9 小时前
HTML-3.3 表格布局(学校官网简易布局实例)
前端·html·github·html5·hbuilder
charlie11451419110 小时前
基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器——MuPDF Adapter文档
arm开发·qt·学习·pdf·教程·设计·qt6