你需要通过value of the nonce field 作为的第一个参数wp_verify_nonce. 因此,您需要修改代码中的nonce验证部分。
此外,您使用的表单字段名称与内部wordpress查询变量冲突,您应该在它们前面加上唯一的前缀,这样它们就不会与wordpress冲突。请参见以下示例:
function my_form() {
if (isset($_POST[\'pf_submit\'])) {
$name = $_POST[\'pf_name\'];
$description = $_POST[\'pf_description\'];
$output_form = false;
if (isset( $_POST[\'pf_added\'] ) && wp_verify_nonce($_POST[\'pf_added\'], \'add-item\') )
{
//validate
echo \'form submitted with nonce correctly\';
}
} else {
$output_form = true;
$name = "";
$description = "";
}
if ($output_form) {
?>
<form method="post" action="">
<?php wp_nonce_field(\'add-item\',\'pf_added\'); ?>
<label>Title:</label><br/>
<input type="text" name="pf_name" value="<?php echo $name; ?>"/><br/>
<label>Description:</label><br />
<textarea name="pf_description" rows="3" cols="10"><?php echo $description; ?></textarea><br/>
<input type="submit" name="pf_submit" value="submit">
</form>
<?php
}
}
add_shortcode(\'PODS FORM\', my_form);