参数
- $action
-
(string|int) (可选) 将上下文添加到nonce的标量值。
默认值: -1
返回
(string) 令牌(token)
说明
应使用init或任何后续动作钩子调用该函数。在动作挂钩之外调用它可能会导致问题,有关详细信息,请参阅ticket #14024。
源码
更新日志
版本 | 描述 |
---|---|
4.0.0 | 会话令牌与nonce创建集成 |
2.0.3 | 开始引入 |
使用示例
示例
在这个简单的示例中,我们创建一个nonce,并将其用作链接URL中的GET
查询参数之一。当用户单击该链接时,他们将被引导到一个页面,在该页面上将执行某个操作(例如,一篇文章可能会被删除)。在目标页面上,验证nonce以确保请求有效(该用户确实单击了链接,并且确实想要执行此操作)。/* * Step A: Create an nonce for a link. * We pass it as a GET parameter. * The target page will perform some action based on the 'do_something' parameter. */ $nonce = wp_create_nonce( 'my-nonce' ); ?> <a href='myplugin.php?do_something=some_action&_wpnonce=<?php echo esc_attr( $nonce ); ?>'><?php esc_html_e( 'Do some action', 'textdomain' ); ?></a> /* * Step B: This code would go in the target page. * We need to verify the nonce. */ $nonce = $_REQUEST['_wpnonce']; if ( ! wp_verify_nonce( $nonce, 'my-nonce' ) ) { // This nonce is not valid. die( __( 'Security check', 'textdomain' ) ); } else { // The nonce was valid. // Do stuff here. }
在上面的例子中,我们简单地调用我们的nonce
my-nonce
。最好为特定于动作的nonce选择一个名称。例如,如果我们要创建一个nonce,它将是删除文章请求的一部分,我们可以将其称为delete_post
。然后,为了使其更具体,我们可以附加nonce用于的特定post的ID。例如,ID为5的文章的delete_post-5
。wp_create_nonce( 'delete_post-' . $post_id );
然后我们会像这样验证nonce:
wp_verify_nonce( $nonce, "delete_post-{$_REQUEST['post_id']}" );
一般来说,最好使动作的名称尽可能具体。