自定义Metabox随机数验证失败

时间:2015-05-22 作者:etiennedi

我正在自定义帖子类型上添加元盒,而我的nonce验证失败。我真的不知道该去哪里寻找出问题的原因。有人能给我指出正确的方向吗?这是我的代码:

function myplugin_add_metabox() {
     add_meta_box(
         \'myplugin_box\', // $id
         \'Some Title\', // $title 
         \'myplugin_box\', // $callback
         \'custom_post_type\', // $page
         \'normal\', // $context
         \'high\'); // $priority
 }
 add_action(\'add_meta_boxes\', \'myplugin_add_metabox\');


function myplugin_box() {
  echo \'<input type="hidden" name="myplugin_nonce" value="\'.wp_create_nonce(basename(__FILE__)).\'" />\';
}


function myplugin_save_box() {
  // verify nonce
  if (!wp_verify_nonce($_POST[\'myplugin_nonce\'], basename(__FILE__)))  {
     error_log("nonce verification failed", 0);
     return $post_id;
  }
  error_log("nonce worked", 0);
}
 add_action(\'save_post\', \'myplugin_save_box\');
现在,不幸的是,我在日志中看到的是“nonce-verification failed”,而不是“nonce-worked”。有人知道在哪里查找错误吗?

谢谢

1 个回复
SO网友:etiennedi

好的,我找到了答案。这是一个相当愚蠢的复制/粘贴错误。我的nonce\\u字段的名称不唯一。我已经从同一个插件创建了另一个nonce,但它是另一个文件。因此basename(__FILE__) 值不同,导致出现不同的nonce。我所要做的就是将字段的名称更改为一些独特的名称,这样就行了。

结束

相关推荐

WP AlChemy MediaAccess在WP编辑器中插入媒体链接,而不是在Metabox中插入自定义字段

我目前正在使用WPAlchemy类以自定义post类型(更准确地说,是来自EventEspresso插件的事件)创建元盒。此元数据库应该能够调用媒体上载程序并插入一些自定义元的图像。它工作得很好,我可以调用媒体上传程序并保存来自文本字段的数据。但是,打开媒体上载程序后,选择图像并单击“插入到帖子”。图像链接转到WP编辑器文本区域,而不是自定义元框中的我的文本字段。谢谢各位。希望它足够清楚,并为可能不是很好的书面英语抱歉。