yahnis-elsts / ajax-wrapper
WordPress 的 AJAX 操作包装器
dev-master
2024-01-11 14:53 UTC
This package is auto-updated.
Last update: 2024-09-11 16:32:31 UTC
README
此助手库使在 WordPress 插件中处理 AJAX 请求变得更容易。主要用于个人使用。
示例
定义操作
$exampleAction = ajaw_v1_CreateAction('ws_do_something') ->handler(array($this, 'myAjaxCallback')) ->requiredCap('manage_options') ->method('post') ->requiredParam('foo') ->optionalParam('bar', 'default value') ->register();
从 JavaScript 中调用
AjawV1.getAction('ws_do_something').post( { 'foo': '...' }, function(response) { console.log(response); } );
特性
- 自动化常见且无聊的事情。
- 自动传递
admin-ajax.php
URL 和 nonce 到 JS。 - 定义必需参数。
$builder->requiredParam('foo', 'int')
- 定义具有默认值的可选参数。
$builder->optionalParam('meaningOfLife', 42, 'int')
- 自动移除 WordPress 添加到
$_GET
、$_POST
和$_REQUEST
中的“魔法引号”。 - 将返回值编码为 JSON。
- 自动传递
- 安全性应该是默认的。
- 生成并验证 nonce。nonce 验证默认开启,但可以禁用。
$builder->withoutNonce()
- 检查能力。
$builder->requiredCap('manage_options');
- 验证所有必需参数是否已设置。
- 验证参数值。
$builder->optionalParam('things', 1, 'int', function($value) { if ($value > 10) { return new WP_Error( 'excessive_things', 'Too many things!', 400 //HTTP status code. ); } })
- 设置所需的 HTTP 方法。
$builder->method('post')
- 生成并验证 nonce。nonce 验证默认开启,但可以禁用。
- 弹性。
- 宽松的响应解析,以解决其他插件中的错误。例如,处理 AJAX 响应中的额外空格和 PHP 通知。
- 同一网站上可以存在该库的多个版本。
为什么不使用 REST API 呢?
向后兼容性。理论上,此库应与 WP 4.1+ 兼容。