media-store-net / wp-oop-nonces
在OOP环境下简单处理插件或主题中的nonces的方法
Requires
- php: ^7.0
Requires (Dev)
- brain/monkey: ^2.0
- inpsyde/monkery-test-case: ^5.0
- inpsyde/php-coding-standards: ^0.13
- phpunit/phpunit: ^8.3
This package is auto-updated.
Last update: 2024-09-05 08:38:37 UTC
README
描述
开发WordPress插件和主题时,有时您需要将自定义项目设置存储在wp_options表中。这个工具可以更轻松地处理OOP环境中的wp_nonce_*函数。
安装
最简单的安装方法是使用composer,
composer require media-store-net/wp-oop-nonces
或者使用以下命令克隆此仓库
git clone https://github.com/media-store-net/wpnonces.git
使用方法
通常,您可以直接使用此类而无需进一步调整。
例如,我创建了一个插件,其中我将使用此包来处理nonce。
步骤1: require the autoload.php 以使其在您的插件/主题中可用 | 可以通过使用composer发布
- 下载仓库并将其存储在插件中的vendor文件夹
require_once WP_PLUGIN_DIR . '/' . plugin_basename( __DIR__ ) . '/vendor/WpNonces/vendor/autoload.php';
步骤2: 在设置或选项页面上加载一个实例
$wp_nonces = \MediaStoreNet\WpNonces\WpNonces::getInstance();
此静态方法允许您始终使用类实例
在所有设置/选项文件中。
步骤3: 创建一个表单 在我的情况下,我在一个单独的函数中这样做,并在设置/选项页面上调用这些函数
<?php function my_form( $wp_nonces ) { ob_start(); ?>
<form method="get" action="options.php">
<label for="testinput">Input</label>
<input type="text" id="testinput" name="testinput"/>
<?php $wp_nonces->getNonceField(); ?>
<?php submit_button( 'speichern' ); ?>
</form>
<?php return ob_get_clean(); ?>
步骤4: 验证
要验证,您有几种选择
调用 $wp_nonce->verify('nonceString')
if ( $wp_nonces->verifyNonce($_REQUEST['_wpnonce']) ): //存储选项...; endif;
调用 $wp_nonce->verifyAdmin()
if ( $wp_nonces->verifyAdmin() ): //存储选项...; endif;
调用 $wp_nonce->verifyAjax() 以验证Ajax请求
if ( $wp_nonces->verifyAjax() ): //存储ajax请求选项...; endif;
默认情况下,使用fieldName的nonce "_wpnonce",如WordPress中使用。操作字符串是"wp-oop-nonce"。
对于更安全和自定义的nonce,您还可以修改fieldName和Action字符串。
$wp_nonces->setFieldName('my-custom-name'); $wp_nonces->setAction('my-custom-action');
当需要时,您还可以使用多个实例,如下所示
$nonces1 = new MediaStoreNet\WpNonces\WpNonces(); $nonces1->setFieldName('name1'); $nonces1->setAction('action1');
$nonces2 = new MediaStoreNet\WpNonces\WpNonces(); $nonces2->setFieldName('name2'); $nonces2->setAction('action2');
请访问我们的API文档站点,以查看所有可用属性和方法。
最低要求/依赖关系
- PHP ^7.0
- WordPress最新版本-2
开发时安装,通过Composer要求
- phpunit/phpunit (BSD-3-Clause)
- brain/monkey (MIT)
- inpsyde/php-coding-standards
文档
请访问我们的文档站点 API文档站点
变更日志
许可证和版权
GPLv2+许可证
版权所有 © 2019 Media-Store.net