创建 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 文件。这意味着我们需要控制插件的激活时机。

c0a105274302474995cfcd919a6aa2d9.png

0a3ac5694e974f308dc12366f186afdb.png

 

创建一个新的管理面板

现在我们已经知道如何让 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 功能的基础。

8f1a720551b3476e83e92052fa7a904b.png

如果想了解更多关于创建 WordPress 插件的信息,我建议查阅官方的 Codex 文档,那里有非常详细的说明。

下一篇:如何在插件中使用web服务

 

我们的主页:PDF 转 HTML5、Java 图像库、Java PDF SDK - IDRsolutions

我们的公众号:IDRSolutions

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/954695.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「港科技」联手「地平线」打造GPT风格的自动驾驶世界模型:DrivingWorld

摘要 最近在自回归&#xff08;AR&#xff09;生成模型方面的成功&#xff0c;例如自然语言处理中的GPT系列&#xff0c;激发了在视觉任务中复制这一成功的努力。一些研究尝试将这种方法扩展到自动驾驶中&#xff0c;通过构建基于视频的世界模型来生成逼真的未来视频序列和预测…

FPGA工程师成长四阶段

朋友&#xff0c;你有入行三年、五年、十年的职业规划吗&#xff1f;你知道你所做的岗位未来该如何成长吗&#xff1f; FPGA行业的发展近几年是蓬勃发展&#xff0c;有越来越多的人才想要或已经踏进了FPGA行业的大门。很多同学在入行FPGA之前&#xff0c;都会抱着满腹对职业发…

SOME/IP协议详解 基础解读 涵盖SOME/IP协议解析 SOME/IP通讯机制 协议特点 错误处理机制

车载以太网协议栈总共可划分为五层&#xff0c;分别为物理层&#xff0c;数据链路层&#xff0c;网络层&#xff0c;传输层&#xff0c;应用层&#xff0c;其中今天所要介绍的内容SOME/IP就是一种应用层协议。 SOME/IP协议内容按照AUTOSAR中的描述&#xff0c;我们可以更进一步…

为ARM64架构移植Ubuntu20.04换源的发现

在为ARM64架构(RK3566)移植ubuntu20.04的时候发现在更换为国内源之后&#xff0c;无法正常完成apt update,报错为: Ign:25 http://mirrors.aliyun.com/ubuntu focal-updates/main arm64 Packages …

Playwright vs Selenium:全面对比分析

在现代软件开发中&#xff0c;自动化测试工具在保证应用质量和加快开发周期方面发挥着至关重要的作用。Selenium 作为自动化测试领域的老牌工具&#xff0c;长期以来被广泛使用。而近年来&#xff0c;Playwright 作为新兴工具迅速崛起&#xff0c;吸引了众多开发者的关注。那么…

【全套】基于机器学习的印度森林火灾发生概率的分析与预测

【私信送源码文档】基于机器学习的印度森林火灾发生概率的分析与预测 对应的ppt 摘 要 随着全球气候变化的不断加剧&#xff0c;火灾的频发和规模逐渐增大&#xff0c;成为备受关注的问题。本文旨在提高对火灾发生概率的准确性&#xff0c;为火灾的预防和管理提供科学支持。在…

【Go】Go Gin框架初识(一)

1. 什么是Gin框架 Gin框架&#xff1a;是一个由 Golang 语言开发的 web 框架&#xff0c;能够极大提高开发 web 应用的效率&#xff01; 1.1 什么是web框架 web框架体系图&#xff08;前后端不分离&#xff09;如下图所示&#xff1a; 从上图中我们可以发现一个Web框架最重要…

TCP/IP协议簇及封装与解封装

TCP/IP协议簇 现如今用的参考模型TCP/IP 是一个协议簇&#xff0c;它组建了整个互联网 最主要的是TCP/IP 和这两个协议&#xff0c;所以起名为TCP/IP TCP/IP模型 TCP/IP标准模型——四层 TCP/IP对等模型——五层 数据链路层分为两个子层&#xff1a; LLC子层&#xff1a;逻辑…

《基于卷积神经网络的星图弱小目标检测》论文精读

Dim small target detection based on convolutinal neural network in star image 摘要 由于低信噪比目标和复杂背景&#xff0c;星图中弱小目标的检测是一项具有挑战性的任务。本文提出了一种深度学习方法&#xff0c;用于在背景不均匀和不同类型的噪声下检测单帧星图中的弱…

如何选择Ubuntu版本

一、为什么要选择Ubuntu系统&#xff1f; CentOS官方已全面停止维护CentOS Linux项目 。具体来说&#xff0c;CentOS 8已于2021年12月31日停止维护&#xff0c;而CentOS 7则在2024年6月30日结束了生命周期 。这意味着这些版本不再接收官方的安全更新、bug修复或技术支持 二、…

计算机视觉算法实战——视频分析(Video Analysis)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​​ ​​​​​​​​​​​​ ​​​​​ 视频分析是计算机视觉中的一个重要领域&#xff0c;旨在从视频数据中提取有用的信息&…

O2O同城系统架构与功能分析

2015工作至今&#xff0c;10年资深全栈工程师&#xff0c;CTO&#xff0c;擅长带团队、攻克各种技术难题、研发各类软件产品&#xff0c;我的代码态度&#xff1a;代码虐我千百遍&#xff0c;我待代码如初恋&#xff0c;我的工作态度&#xff1a;极致&#xff0c;责任&#xff…

讲一下ZooKeeper的持久化机制?

大家好&#xff0c;我是锋哥。今天分享关于【讲一下ZooKeeper的持久化机制&#xff1f;】面试题。希望对大家有帮助&#xff1b; 讲一下ZooKeeper的持久化机制&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 ZooKeeper 是一个开源的分布式协调服务&…

C++ 文字识别OCR

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…

数据库(MySQL)练习

数据库&#xff08;MySQL&#xff09;练习 一、练习1.15练习1.16练习 二、注意事项2.1 第四天 一、练习 1.15练习 win11安装配置MySQL超详细教程: https://baijiahao.baidu.com/s?id1786910666566008458&wfrspider&forpc 准备工作&#xff1a; mysql -uroot -p #以…

【HTML+CSS+JS+VUE】web前端教程-35-字体图标

优点: 轻量性:加载速度快,减少http请求 灵活性:可以利用CSS设置大小颜色等 兼容性:网页字体支持所有现代浏览器,包括IE低版本 使用字体图标: 1、注册账户并登录 2、选取图标或搜索图标 3、添加购物车 4、下载代码 5、选择font-class引用 iconfont Logo:https://www.ic…

YOLOv8模型改进 第二十九讲 添加可学习小波变换节点 Learnable Wavelet Transform Node 提高小目标检测能力,增强细节特征

在图像去模糊领域&#xff0c;多尺度架构虽被广泛应用&#xff0c;但存在固有缺陷。在渐进恢复过程中&#xff0c;由于底层空间分辨率小&#xff0c;向上传递的特征语义精确但空间模糊&#xff0c;导致多尺度网络在空间细节恢复能力上受限。为提升高频细节部分的恢复质量&#…

数据库基础实验1(创建表,设置外键,检查,不为空,主键等约束)安装mysql详细步骤

安装MySQL详细步骤 1. 下载 MySQL 安装程序 访问 MySQL 官方网站&#xff1a;MySQL Downloads。在下载页面&#xff0c;选择 "MySQL Community (GPL) Downloads"。在 "MySQL Community Server" 部分&#xff0c;根据你的操作系统&#xff08;Windows&…

CSRF(跨站请求伪造)深度解析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

详解如何自定义 Android Dex VMP 保护壳

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 前言 Android Dex VMP&#xff08;Virtual Machine Protection&#xff0c;虚拟机保护&#xff09;壳是一种常见的应用保护技术&#xff0c;主要用于保护 And…