Mostrar campos de comentarios personalizados al editar en admin

4

Estoy usando el complemento Custom Comment para agregar campos personalizados a mis comentarios.

  

Este complemento te permite definir más campos para comentarios para que tus visitantes incluyan su facebook, twitter y ... en sus comentarios

Todo está funcionando como se esperaba. Sin embargo, los campos personalizados no aparecen cuando edito un comentario en el lado de administración. Actualmente solo muestra los campos predeterminados: name , email , url , comment .

¿Hay alguna acción o filtro que se pueda usar para mostrar los campos personalizados de este comentario?

    
pregunta Chris 19.01.2013 - 21:15

1 respuesta

4

Insertar un cuadro de meta en la pantalla de edición de comentarios es el mismo que en las pantallas de tipos de publicación. Pero solo se puede colocar en la columna ancha, la barra lateral parece no aceptar otras casillas.

Para capturar los datos que se están publicando, solo encontré el filtro comment_edit_redirect .

Esto debe adaptarse para que funcione con el complemento. El campo personalizado en este ejemplo es meta_comment_field . Ver comentarios en 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' />";
}

    
respondido por el brasofilo 20.01.2013 - 00:05

Lea otras preguntas en las etiquetas