Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在Wordpress中编辑评论元数据_Php_Wordpress - Fatal编程技术网

Php 无法在Wordpress中编辑评论元数据

Php 无法在Wordpress中编辑评论元数据,php,wordpress,Php,Wordpress,我使用的是Wordpress版本4.5.3,并在评论表单中添加了一个自定义字段。该字段是使用select标记的下拉列表。该字段在表单中显示得很好,我可以选择一个选项,该选项的值会正确保存 我还添加了代码来编辑编辑评论页面/wordpress/wp admin/Comment.php?action=editcomment中的自定义字段。我能够检索存储的值,然后用选择的正确值重新创建下拉列表 我添加了代码来保存自定义字段的编辑值,但这不起作用。在“编辑注释”页面中,我从下拉列表中选择不同的值,然后单

我使用的是Wordpress版本4.5.3,并在评论表单中添加了一个自定义字段。该字段是使用select标记的下拉列表。该字段在表单中显示得很好,我可以选择一个选项,该选项的值会正确保存

我还添加了代码来编辑编辑评论页面/wordpress/wp admin/Comment.php?action=editcomment中的自定义字段。我能够检索存储的值,然后用选择的正确值重新创建下拉列表

我添加了代码来保存自定义字段的编辑值,但这不起作用。在“编辑注释”页面中,我从下拉列表中选择不同的值,然后单击“更新”按钮,新选择的值不会保存

我正在functions.php中添加代码来完成所有这一切。下面是将字段添加到表单并存储数据的代码:

// 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">*&nbsp;&nbsp;&nbsp;&nbsp;</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 );