Personalizar el marcado de la lista de comentarios

2

Al crear un nuevo tema, tendremos que personalizar el flujo de comentarios. Para hacerlo hay dos funciones: wp_list_comments() y get_comments() . No estoy muy seguro de cómo estilizar los elementos internos que aparecen en él, como Gravatar, descripción de comentarios, autor de comentarios, etc. Para hacerles un estilo a ellos, primero debo conocer los elementos DOM que se les asignan. ¿Dónde puedo encontrar información sobre ellos?

Lo he intentado en casi todas las fuentes, no puedo entenderlo correctamente.

    
pregunta Arunkumar Srisailapathi 25.12.2012 - 02:53

1 respuesta

4

Deberías usar wp_list_comments() , porque esto llamará a una clase de Walker que puede manejar hilos de comentarios:

// from wp_list_comments()
if ( empty($walker) )
    $walker = new Walker_Comment;

$walker->paged_walk($_comments, $max_depth, $page, $per_page, $r);

Walker_Comment maneja el marcado de los comentarios. Puedes pasar un caminante personalizado para cambiarlo.

Ejemplo:

class Simple_Comment_Walker extends Walker_Comment
{
    function start_el( &$output, $comment, $depth, $args, $id = 0 ) {
        $depth++;
        $GLOBALS['comment_depth'] = $depth;
        $GLOBALS['comment'] = $comment;

        print '<li>' . get_comment_author_link() . '<br>';
        comment_text();
    }
}

wp_list_comments( array ( 'walker' => new Simple_Comment_Walker ) );

Pero esto no es necesario si solo desea cambiar la marca de comentario único. Puede pasar un parámetro callback a wp_list_comments() para hacer lo mismo:

function simple_callback() 
{
    print '<li>' . get_comment_author_link() . '<br>';
    comment_text();
}
wp_list_comments( array ( 'callback' => 'simple_callback' ) );
  • Use un caminante personalizado si también desea cambiar los elementos del contenedor para la lista de comentarios, use una devolución de llamada si desea cambiar solo los comentarios individuales.

  • Puedes sobrescribir todo en Walker_Comment , consulta wp-includes/comment-template.php para obtener más información.

  • Recuerda que debes no cerrar el primer contenedor de comentarios (en mis ejemplos, el <li> ), Walker hace esto cuando se imprime todo el hilo.

respondido por el fuxia 25.12.2012 - 03:33

Lea otras preguntas en las etiquetas