alin999/demo-wp-nonces-oop

Composer 包,以面向对象的方式实现 WordPress Nonces 的操作

dev-master 2018-04-23 11:54 UTC

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"
    }
}

公共函数

使用方法

    $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');