Php 无法在Wordpress中编辑评论元数据
我使用的是Wordpress版本4.5.3,并在评论表单中添加了一个自定义字段。该字段是使用select标记的下拉列表。该字段在表单中显示得很好,我可以选择一个选项,该选项的值会正确保存 我还添加了代码来编辑编辑评论页面/wordpress/wp admin/Comment.php?action=editcomment中的自定义字段。我能够检索存储的值,然后用选择的正确值重新创建下拉列表 我添加了代码来保存自定义字段的编辑值,但这不起作用。在“编辑注释”页面中,我从下拉列表中选择不同的值,然后单击“更新”按钮,新选择的值不会保存 我正在functions.php中添加代码来完成所有这一切。下面是将字段添加到表单并存储数据的代码:Php 无法在Wordpress中编辑评论元数据,php,wordpress,Php,Wordpress,我使用的是Wordpress版本4.5.3,并在评论表单中添加了一个自定义字段。该字段是使用select标记的下拉列表。该字段在表单中显示得很好,我可以选择一个选项,该选项的值会正确保存 我还添加了代码来编辑编辑评论页面/wordpress/wp admin/Comment.php?action=editcomment中的自定义字段。我能够检索存储的值,然后用选择的正确值重新创建下拉列表 我添加了代码来保存自定义字段的编辑值,但这不起作用。在“编辑注释”页面中,我从下拉列表中选择不同的值,然后单
// Add fields after default fields above the comment box, always visible
add_action( 'comment_form_logged_in_after', 'additional_fields' );
add_action( 'comment_form_after_fields', 'additional_fields' );
function additional_fields () {
echo '<p class="comment-form-area">'.
'<label for="region">' . __( 'Choose a <strong>region</strong>' ) . '<span class="required">* </span></label>'.
'<br /><select id="region" name="region">
<option value="one">one</option>
<option value="two">two</option>
<option value="three">three</option>
<option value="four">four</option>
</select></p>';
}
// Save the comment meta data along with comment
add_action( 'comment_post', 'save_comment_meta_data' );
function save_comment_meta_data( $comment_id ) {
if ( ( isset( $_POST['region'] ) ) && ( $_POST['region'] != '') )
$region = wp_filter_nohtml_kses($_POST['region']);
add_comment_meta( $comment_id, 'region', $region );
}
此代码不起作用。返回“编辑注释”页面时,我看到的是自定义字段的原始值,而不是已编辑的值
为什么未保存编辑的值?函数extend\u comment\u edit\u metafields最初测试是否设置了nonce字段。它没有,因此返回执行时不调用update\u comment\u meta。要正常工作,应在extend_comment_meta_框中设置nonce字段,如下所示:
wp_nonce_field( 'extend_comment_update', 'extend_comment_update', false );
此处讨论了nonce字段:函数extend\u comment\u edit\u metafields最初测试是否设置了nonce字段。它没有,因此返回执行时不调用update\u comment\u meta。要正常工作,应在extend_comment_meta_框中设置nonce字段,如下所示:
wp_nonce_field( 'extend_comment_update', 'extend_comment_update', false );
此处讨论了nonce字段:
wp_nonce_field( 'extend_comment_update', 'extend_comment_update', false );