WordPress 插件开发
像素鱼丸
2024-05-04
560
0

什么是 WordPress 插件 ?

插件( Plugins )是如何与 WordPress 交互的

WordPress 为插件提供了多种丰富的 APIs。每一种 API( 应用程序接口 )使插件和 WordPress 以不同的方式交互。下面是 WordPress 提供的主要 APIs 以及他们的功能列表:

插件: 给插件提供一系列的钩子( hooks )来使用 WordPress 的相关部分。WordPress 包含两种不同类型的钩子: 动作( Actions )和过滤器( Filters )。动作让你可以在运行时的特定时刻触发自定义的插件代码。例如,可以在用户在 WordPress 中注册了一个账户后触发一个自定义函数。 过滤器用来修改在数据库中添加或获取的数据。

小工具( Widgets ): 在你的插件中创建和管理小工具。Widgets 在 Appearance -> Widgets 下面,并可以在你的模板中任何注册过的 sidebar 中添加。这个 API 允许在 sidebar 里面添加一个 widget 的多个实例。

短代码( Shortcode ):为你的插件提供短代码支持。短代码是一个可以让你通过类似这样[shortcode]的方法调用一个 PHP 函数的钩子。

HTTP: 从你的插件发送 HTTP 请求。这个 API 可以从一个外部的 URL 获取或者提交内容。目前你有5种发送 HTTP 请求的不同方法。这个 API 在每个方法执行前使过程标准化。这个 API 会基于你的服务器的设置使用合适的方法来发送请求。

设置( Settings ): 在你的插件中插入设置部分。使用设置 API 的主要好处就是安全。所有的设置数据都是检查过的,所以当你保存插件设置时不用担心跨站虚假请求攻击( cross site request forgery, CSRF) 和跨站脚本( cross site scripting XSS )攻击。

选项( Options ): 在你的插件中保存和获取选项。这个 API 允许创建新选项,更新现有选项,删除选项以及可选的控制板( Dashboard )定义。

小工具( Widgets ): 创建控制板小工具。小工具自动出现在 WordPress 的后台控制板中,并且包含标准的自定义操作,包括最小化、拖拽和隐藏。

重写( Rewrite ): 在插件中创建自定义的重写规则。这个 API 让你添加静态链接-点( /custom-page/),结构标签( %postname% ),和附加的 feed 链接( /feed/json/ )。

临时选项( Transients ): 在你的插件中创建临时选项( 缓存数据 )。这个 API 类似于 选项( Options ) API,只不过所有的选项都有过期时间。

数据库( database ): 可以访问 WordPress 数据库。可以再你的插件中增删改查数据库记录。

如何编写

i. 添加插件

wp-content/plugins/basicform/index.php

<?php
/**
 * @package Basic_Form
 * @version 1.0.0
 */
/*
Plugin Name: Basic_Form
Plugin URI: https://javascript.net.cn
Description: 
Author: 这是一个基础表单插件。
Version: 1.0.0
Author URI: https://javascript.net.cn
*/

function test() {
	
}

ii. 在左侧菜单“设置” 的子菜单中添加插件

//将插件在左侧菜单中显示
function register_left_my_menu()
{
  add_options_page("Basic_Form设置页面", "Basic_Form设置2", 8, __FILE__, "basic_form");
}

//插件内容
function basic_form()
{
  echo '这里是basic_form插件的页面内容,可以添加表单设置。';
}

//在 admin_menu 勾子中添加动作 basic_form
if (is_admin()) {
  add_action("admin_menu", "register_left_my_menu");
}

iii. 插件安装和卸载钩子

在插件安装和卸载的时候,往往需要执行一些操作,比如增删改一些数据库,这是就需要 register_activation_hook 和 register_deactivation_hook。

register_activation_hook(__FILE__, 'tinyms_init');

function tinyms_init(){
    global $wpdb;
    $wpdb->query("CREATE TABLE if not exists  
        (`id` bigint(20) NOT NULL AUTO_INCREMENT,
        `name` varchar(255) DEFAULT NULL,
        `url` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`))");
}

现在,只要激活插件,上面的表便创建好了。当插件取消激活的时候,同样可以做一些清理工作。

同样可以使用面向对象的方法写:

//方法都写成静态函数
class MyPlugin {
  static function install() {
     // do not generate any output here
  }
  static function uninstall() {
     // do not generate any output here
  }
}
//类名,方法名
register_activation_hook( __FILE__, array('MyPlugin', 'install') );
register_deactivation_hook(__FILE__,array('MyPlugin','uninstall'));
收藏
打赏
Wordpress 数据库表结构
上一篇
WordPress 添加文章浏览次数
下一篇

发表评论

注册不是必须的

像素鱼丸
149 文章
0 评论
4 喜欢
最新文章

Mirage 主题 v2.93.0 发布

更新内容: refactor 移除图片高宽比开关 refactor 移除全局的TOC生成开关 refactor 优化 header.php 中的seo模块和样式覆盖 feat 主题启用的时候,移除非当前主题注册的小工具 fix 修复分类小工具的bug feat 管理员打开后台,检查最当前设置首页布局的模块,如果缺少最新模块,就添加到隐藏模块列表中 fix 优化链接卡片样式 fix 优化热门文章样式 […]

如何使用 WordPress Setting API

使用 WordPress 的 Setting API 是在插件或主题中创建和管理设置页面的标准方式。它提供了一种结构化、安全的方式来保存和获取用户配置的选项。 ✅ 一、Setting API 简介 WordPress 的 Setting API 允许你: 创建设置页面(Settings Page) 注册设置字段(Settings Field) 验证和保存设置数据 使用表单提交来更新设置 ✅ 二、基 […]

详解 WordPress 的评论设置

好的,我们来详细梳理并总结 WordPress 中关于文章评论的两个核心控制层级:全局设置和单篇设置。理解这两者的关系(优先级)是管理网站评论的关键。 1. 全局设置 (Global Settings) —— 网站的“默认规则” 这是整个网站评论系统的总开关和默认行为准则。它决定了新发布的文章默认是什么样子的。 位置:WordPress 后台仪表盘 -> 设置 (Settings) -> […]

wp_handle_comment_submission 函数

wp_handle_comment_submission() 是 WordPress 中用于处理评论提交的核心函数之一。它通常在用户提交评论时被调用,负责验证和处理评论数据,并最终将评论插入到数据库中。 ✅ 函数作用 wp_handle_comment_submission() 的主要功能是: 验证用户提交的评论数据(如评论内容、用户名、邮箱等) 检查是否为垃圾评论(通过 Akismet 或其他过 […]
生成中...
扫描二维码
扫描二维码
用户登录