参数
- $action
-
(int|string) (可选) Nonce 动作
默认值: -1
- $query_arg
-
(false|string) (可选) 检查在
$_REQUEST
中的nonce的键(自2.5起)。如果false,$_REQUEST
值将预估为 “_ajax_nonce” 和 “_wpnonce”(按该顺序)。默认值: false
- $die
-
(bool) (可选) 当暂时无法验证时,是否提前die。
默认值: true
返回
(int|false) 如果nonce有效并且在0-12小时之前生成返回1,如果nonce有效并且在12-24小时之前生成返回2。如果nonce无效,则为False。
说明
不应依赖nonce进行身份验证、授权或访问控制。使用current_user_can()保护您的函数,并始终假设nonce可能受到损害。
此函数可通过插件替换。如果插件没有重新定义这些函数,那么将使用它。
如果未指定$query_arg(即默认为false),则函数将在'_ajax_nonce'中查找nonce。如果未设置该参数,则它将假设nonce在'_wpnonce'中,而不管该查询参数是否实际存在。
如果$die设置为true,如果无法验证nonce,则脚本的执行将停止,输出将为'-1'。
源码
更新日志
版本 | 描述 |
---|---|
2.0.3 | 开始引入 |
使用示例
示例
在主文件中,按如下方式设置nonce:<?php //Set Your Nonce $ajax_nonce = wp_create_nonce( "wpdocs-special-string" ); ?> <script type="text/javascript"> jQuery(document).ready(function($){ var data = { action: 'wpdocs_action', security: '<?php echo $ajax_nonce; ?>', wpdocs_string: 'Hello World!' }; $.post(ajaxurl, data, function(response) { alert("Response: " + response); }); }); </script>
在AJAX文件中,检查如下引用:
/** * Check the referrer for the AJAX call. */ function wpdocs_action_function() { check_ajax_referer( 'wpdocs-special-string', 'security' ); echo sanitize_text_field( $_POST['wpdocs_string'] ); die; } add_action( 'wp_ajax_wpdocs_action', 'wpdocs_action_function' );