web-dev-qa-db-ja.com

Adminで編集するときにカスタムコメントフィールドを表示する

私は私のコメントにカスタムフィールドを追加するために カスタムコメント プラグインを使用しています。

このプラグインを使用すると、訪問者が自分のFacebook、Twitterなどをコメントに含めることができるように、コメント用のフィールドをさらに定義できます。

期待通りにすべてが機能しています。ただし、管理者側でコメントを編集してもカスタムフィールドが表示されません。現在のところ、デフォルトのフィールドnameemailurlcommentのみが表示されます。

このコメントカスタムフィールドを表示するために使用できるアクションやフィルタはありますか?

4
Chris

コメント編集画面にメタボックスを挿入することは、投稿タイプ画面と同じです。しかし、幅の広い柱の上にしか配置できません。サイドバーは他の箱を受け入れないようです。

投稿されたデータをキャプチャするために、私はフィルタ comment_edit_redirect のみを見つけました。

これはプラグインで動作するように調整する必要があります。この例のカスタムフィールドはmeta_comment_fieldです。コードのコメントを見る:

// SAVE COMMENT META
// only found this hook to process the POST
add_filter( 'comment_edit_redirect',  'save_comment_wpse_82317', 10, 2 );

// META BOX
add_action( 'add_meta_boxes', 'add_custom_box_wpse_82317' );

/**
 * Save Custom Comment Field
 * This hook deals with the redirect after saving, we are only taking advantage of it
 */
function save_comment_wpse_82317( $location, $comment_id )
{
    // Not allowed, return regular value without updating meta
    if ( !wp_verify_nonce( $_POST['noncename_wpse_82317'], plugin_basename( __FILE__ ) ) 
        && !isset( $_POST['meta_comment_field'] ) 
        ) 
        return $location;

    // Update meta
    update_comment_meta( 
        $comment_id, 
        'meta_comment_field', 
        sanitize_text_field( $_POST['meta_comment_field'] ) 
    );

    // Return regular value after updating  
    return $location;
}

/**
 * Add Comment meta box 
 */
function add_custom_box_wpse_82317() 
{
    add_meta_box( 
        'section_id_wpse_82317',
        __( 'Meta Comment Meta' ),
        'inner_custom_box_wpse_82317',
        'comment',
        'normal'
    );
}

/**
 * Render meta box with Custom Field 
 */
function inner_custom_box_wpse_82317( $comment ) 
{
    // Use nonce for verification
    wp_nonce_field( plugin_basename( __FILE__ ), 'noncename_wpse_82317' );

    $c_meta = get_comment_meta( $comment->comment_ID, 'meta_comment_field', true );
    echo "<input type='text' id='meta_comment_field' name='meta_comment_field' value='", 
        esc_attr( $c_meta ), 
        "' size='25' />";
}

comments custom field

4
brasofilo