Mostrar campos de comentário personalizados ao editar no admin

4

Estou usando o plug-in Comentário personalizado para adicionar campos personalizados aos meus comentários.

  

Este plug-in permite que você defina mais campos para comentários, permitindo que seus visitantes incluam o facebook, o twitter e ... em seus comentários

Tudo está funcionando como esperado. No entanto, os campos personalizados não aparecem quando edito um comentário no lado do administrador. Atualmente, ele mostra apenas os campos padrão - name , email , url , comment .

Existe uma ação ou um filtro que pode ser usado para mostrar esses campos personalizados de comentários?

    
por Chris 19.01.2013 / 21:15

1 resposta

4

A inserção de uma meta box na tela de edição de comentários é a mesma das telas de tipos de postagem. Mas só pode ser colocado na coluna larga, a barra lateral parece não aceitar outras caixas.

Para capturar os dados que estão sendo postados, só encontrei o filtro comment_edit_redirect .

Isso precisa ser adaptado para funcionar com o plugin. O campo personalizado neste exemplo é meta_comment_field . Veja os comentários do código:

// 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' />";
}

    
por brasofilo 20.01.2013 / 00:05