创建新帖子时导致问题的随机数检查

时间:2013-02-23 作者:urok93

我已经创建了一个新的自定义帖子类型和一些自定义字段。保存自定义元字段的函数在“save\\u post”挂钩上启动。

问题是,我在添加新帖子时收到警告:

注意:未定义索引:my\\u meta\\u box\\u nonce。。。。

       // verify nonce
    if ( ! wp_verify_nonce( $_POST[ \'my_meta_box_nonce\' ], basename( __FILE__ ) ) ) 
       return $post_id; 
当我输入帖子详细信息并点击发布时,不会显示错误,只有在创建新的空帖子时才会显示错误。这里怎么了?

我的代码几乎相同,基于本教程:http://wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-1-intro-and-basic-fields/

在该教程的评论中,似乎还有其他人也有同样的问题,但没有给出解决方案。

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

我知道这并不是唯一一个有代码检查元框的教程,但这真的很愚蠢。Nonce应该按照整个操作而不是每个部分进行检查,如果调用了save\\u post钩子,则意味着save Nonce已经检查并发现有效,因此不需要进行更多的安全检查。

我的建议是,只需从metabox代码中删除与nonce相关的任何内容,但如果有了它您会感觉更好,只需将代码更改为

   // verify nonce
    if ( !isset($_POST[ \'my_meta_box_nonce\' ]) || !wp_verify_nonce( $_POST[ \'my_meta_box_nonce\' ], basename( __FILE__ ) ) ) 
       return $post_id; 
当未提供nonce或nonce未通过验证时,将退出

结束

相关推荐

致命错误:调用未定义的函数wp_create_nonce()

我正在尝试向插件的Ajax中添加一个nonce。我不确定为什么会出现此错误:致命错误:调用未定义的函数wp\\u create\\u nonce()在我的php文件中:wp_localize_script(\'my-ajax-handle\', \'the_ajax_script\', array(\'ajaxurl\'=> admin_url(\'admin-ajax.php\'), \'my_nonce\' => wp_create_nonce(\'myajax-nonce\')));&#