alin999 / demo-wp-nonces-oop
Composer 包,以面向对象的方式实现 WordPress Nonces 的操作
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-29 05:01:57 UTC
README
Composer 包,提供与 WordPress Nonces 交互的功能。以面向对象的方式实现 wp_nonce_*() 函数。
安装
shell
composer require alin999/demo-wp-nonces-oop
或,只需在您的 composer 文件中添加
{
"repositories": [
{
"type": "vcs",
"url" : "https://github.com/alin999/demo-wp-nonces-oop"
}
],
"require": {
"alin999/demo-wp-nonces-oop" : "dev-master"
}
}
公共函数
- set_action
- get_action
- set_nonce_name
- get_nonce_name
- create_nonce
- nonce_to_url
- nonce_to_field
- nonce_ays
- verify_nonce
- check_admin_referer
- check_ajax_referer
使用方法
$my_nonce = new WP_Nonce;
set_action
设置自定义的 nonce 动作
参数
- $action (字符串/整数) (可选) Nonce 动作。如果为空,默认值为 -1
$my_nonce->set_action('test-action'); echo $my_nonce->action;
get_action
返回 nonce 动作
$action = $my_nonce->get_action(); echo $action;
set_nonce_name
设置自定义的 nonce 名称
参数
- $name (字符串/整数) (可选) 动作名称。如果为空,默认值为 _wpnonce
$my_nonce->set_nonce_name( '_wpnonce' ); echo $my_nonce->nouce_name;
get_nonce_name
返回 nonce 名称
$name = $my_nonce->get_nonce_name(); echo $name;
create_nonce
基于 WordPress wp_create_nonce 函数生成和返回 nonce 的函数
返回:字符串
参数
- $action (字符串/整数) (可选) Nonce 动作。可选。如果为空,则使用类变量 ($my_nonce->action)
$nonce = $my_nonce->create_nonce(); echo $nonce;
nonce_to_url
向 URL 添加 nonce 动作并返回更新后的 URL 的函数。它包装了 WordPress 函数 wp_nonce_url
返回:字符串:添加了 nonce 动作的 URL
参数
- $actionurl 字符串:要添加 nonce 动作的 URL
- $action 字符串/整数:可选。nonce 动作名称。如果为空或空白,则使用类变量 (action)
- $name 字符串:可选。nonce 名称。如果为空、null 或空白,则使用类变量 (nonce_name)
$test_url = $my_nonce->nonce_to_url( 'http://my-wp-site.com', -1, '_wpnonce'); echo $test_url;
nonce_to_field
检索或显示 nonce 隐藏表单字段的函数。它包装了 WordPress 函数 wp_nonce_url
返回:字符串:nonce 隐藏表单字段
参数
- $action 字符串/整数:可选。nonce 动作名称。如果为空或空白,则使用类变量 (action)
- $name 字符串:可选。nonce 名称。如果为空、null 或空白,则使用类变量 (nonce_name)
- $referer 布尔值:可选。是否也使用 wp_referer_field() 函数创建 referer 隐藏表单字段。默认为 true
- $echo 布尔值:可选。是否显示或返回 nonce 隐藏表单字段。默认为 true
$nonce_field = $my_nonce->nonce_to_field( -1, '_wpnonce', true, false ); echo $nonce_field;
nonce_ays
显示 '您确定要执行此操作吗?' 信息以确认所采取的动作的函数。它包装了 WordPress 函数 wp_nonce_ays
参数
- $action 字符串/整数:可选。nonce 动作名称。如果为空或空白,则使用类变量 (action)
$my_nonce->nonce_ays();
verify_nonce
验证 nonce 是否正确且未过期的函数,与指定的动作相关。它包装了 WordPress 函数 wp_verify_nonce
返回:布尔值。如果 nonce 无效,则返回 false。否则,返回一个整数值,其值为:1 - 如果在过去的 12 小时内或更短时间内生成,或 2 - 如果在 12 到 24 小时之前生成。
参数
- $nonce 字符串:必需。要验证的 nonce。
- $action 字符串/整数:可选。nonce 动作名称。如果为空或空白,则使用类变量 (action)
$nonce = $my_nonce->create_nonce(); $verify_nonce_response = $my_nonce->verify_nonce($nonce); echo $verify_nonce_response;
check_admin_referer
测试当前请求是否包含有效的 nonce,或当前请求是否来自管理屏幕的引用;这取决于是否提供了 $action 参数(这是首选的),或者没有。在失败后,该函数在调用 wp_nonce_ays() 函数后退出。
它包装了 WordPress 函数 check_admin_referer
返回值:返回布尔值true。在废弃用法的情况下,当前请求必须来自管理屏幕;在推荐用法的情况下,必须发送并验证nonce。否则,函数会输出适当的消息并终止(默认为“你确定要这么做吗?”)。参数
- $action 字符串/整数:可选。nonce 动作名称。如果为空或空白,则使用类变量 (action)
- $query_arg_name 字符串,可选。nonce名称。在$REQUEST PHP变量中查找nonce的位置。如果缺失、为null或空白,则使用类变量(nonce_name)。
//You add a nonce to a form using the wp_nonce_field() function: <form method="post"> <!-- some inputs here --> <?php $my_nonce->nonce_to_field( 'name_of_my_action', 'name_of_nonce_field' , true , true ); ?> </form> //Then in the page where the form submits to, you can verify whether or not the form was submitted and update values if it was successfully submitted: <?php $my_nonce->check_admin_referer( 'name_of_my_action', 'name_of_nonce_field' ); // process form data, e.g. update fields // you can use it in a IF statement if you want, not mandatory because there is not "false" return, only true or die().
check_ajax_referer
此函数可以被插件覆盖。如果没有插件重新定义此函数,则将使用标准功能。标准函数验证AJAX请求,以防止处理来自第三方网站或系统的请求。
它封装了WordPress函数 check_ajax_referer_
返回值:布尔值。如果参数$die设置为false,则此函数将在检查通过时返回true,检查失败时返回false。
参数
- $action 字符串/整数:可选。nonce 动作名称。如果为空或空白,则使用类变量 (action)
- $query_arg 字符串,可选。在$REQUEST中查找nonce的位置。默认:false
- $die @param 布尔值,可选。当nonce无效时是否终止。默认:true 示例
$my_nonce->check_ajax_referer('my-action', 'my-query-arg');