Wp_nonce_field显示两次

时间:2012-03-16 作者:byronyasgur

我有wp_nonce_field 在我的代码中,但由于某种原因,它为html代码创建了两个实例,一个在我期望的地方,另一个在条目的开头。这是对的还是我做错了什么。它正在创建验证程序错误。我所做的一件事有点不同,那就是表单是通过一个短代码输出的,但我没想到这会导致问题。我已经检查了其余的代码wp_nonce_field 因为某种原因“工作两次”。。。下面是代码的相关部分

      (rest of form code precedes this)      
      $formDisplay .= $commentErrorDisplay;
      $formDisplay .= \'<input id="submitContact" type="submit" value = "Send" />\';
      $formDisplay .= wp_nonce_field(\'contact-form\');
      $formDisplay .= \'<input type="hidden" name="contact-submitted" id="contact-submitted" value="true" />\';
      $formDisplay .= \'<br /><span class="feedback \' . $sent .\'">\'.$feedback.\'</span>\';
      $formDisplay .= \'</form>\';
      $formDisplay .= \'</div>\';


      return $formDisplay;
Edit : 我想我已经发现了,虽然事实上我还没有完全理解,但这可能只是我普遍缺乏知识。法典上说

返回值(字符串)Nonce字段。

所以我认为这意味着,当它以字符串形式返回nonce字段时,我可以将其附加到$formDisplay(代码的第三行)中,但显然不行。我认为它必须同时显示nonce字段并返回它或其他内容。我相信它的操作没有什么奇怪的地方,但也许值得把这个问题留在这里,以防其他人也会犯同样的错误。

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

如果要将nonce字段添加到HTML字符串中,则必须指定不希望其回显。这是第四个参数;看见https://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/functions.php#L1952

$formDisplay .= wp_nonce_field( \'contact-form\', \'_wpnonce\', true, false );

结束

相关推荐

How to execute a shortcode?

我有一个WordPress选项,可以存储一些数据,例如:<h1>Header</h1> <p>Paragraph</p> [shortcodesomething/] [shortcode]Contents[/shortcode] 我正在使用显示此选项的值echo get_option(\'my_option\'));.当然,短代码不起作用,我想知道如何迫使他们做他们应该做的事情?echo do_shortcode(get_o