¿Cuáles son las mejores prácticas recomendadas actualmente para comments.php?

4

Me estoy preparando para enviar un tema al repositorio .Org y quería asegurarme de que todo esté en orden. Uno de los agujeros más grandes que quedan en mi diseño es la plantilla de comentarios.

He echado un vistazo a comments.php en algunos temas, entre ellos, Twenty Ten y se han quedado más confundidos que cuando comencé. Parece que (según los tutoriales de Otto, WP Engineer, etc.) la plantilla de comentarios se ha simplificado, sin embargo, cuando veo la fuente de la mayoría de los comentarios.php de los temas, siguen siendo tan complicados como en Christian-Montoya. -Dados días de antigüedad.

Así que ayúdeme, ¿cuál es la mejor manera de configurar una plantilla de comentarios que capture la funcionalidad más avanzada a partir de WP 3.0 / 3.1 y que, a la vez, mantenga la simplicidad del código?

    
pregunta ZaMoose 20.04.2011 - 05:26

2 respuestas

6

Realmente no necesitas mucho.

Un titular con id = comentarios

<h2 id="comments"><?php comments_number(); ?></h2>

Este será el objetivo de comments_link() en el bucle del artículo.

Enlaces para comentarios paginados.

Por lo general, pongo estos enlaces en una función y la llamo por encima y por debajo de la lista de comentarios:

class TTT_Template {
    function comment_pager()
    {
        if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) )
        {
            ?>
            <div class="comment-navigation">
                <div class="nav-previous">
                <?php
                previous_comments_link( 'Ältere Kommentare' );
                ?>
                </div>
                <div class="nav-next">
                <?php
                next_comments_link( 'Neuere Kommentare' );
                ?>
                </div>
            </div>
        <?php
        }
    }
}

wp_list_comments ()

Puede usar una función de devolución de llamada personalizada, pero no tiene que hacerlo. Para un tema en wp.org usaría gravatars en la devolución de llamada. Y no lo pondría en un espacio de nombres con my_ . ;)

<ol class="commentlist">
<?php
wp_list_comments(
    array (
        'type'     => 'comment'
    ,   'style'    => 'ul'
    ,   'callback' => 'my_comment_callback'
    )
);
?></ol>

Como puede ver, el parámetro type le permite separar los comentarios normales de los pings. Consulte el codex para obtener más información. Si crea dos listas separadas, marque get_option( 'default_ping_status' ); para evitar una lista vacía.

comment_form ();

Puede usar la configuración predeterminada o agregar sus propios filtros. Utilizo una clase personalizada para mover el área de texto a la parte superior y reorganizar algunas otras cosas de menor importancia.

if ( comments_open( get_the_ID() ) )
{
    locate_template( array ( '/php/class.TTT_Comment_Form.php' ), TRUE, TRUE );
    $ttt_comment_class = new TTT_Comment_Form();
    comment_form();
}

Y eso es todo.

Código completo

<?php
if ( ! defined('ABSPATH') ) { die ('Nö.'); }

if ( have_comments() )
{
    ?><h2 id="comments"><?php comments_number(); ?></h2>
    <?php
    TTT_Template::comment_pager();
    ?>
    <ol class="commentlist">
    <?php
    wp_list_comments(
array (
            'type'  => 'comment'
        ,   'style' => 'ul'
        ,   'callback' => 'my_comment_callback'
    )
    );
    ?></ol>
    <?php
    TTT_Template::comment_pager();
}

if ( comments_open( get_the_ID() ) )
{
    locate_template( array ( '/php/class.TTT_Comment_Form.php' ), TRUE, TRUE );
    $ttt_comment_class = new TTT_Comment_Form();
    comment_form();
}
    
respondido por el fuxia 20.04.2011 - 11:35
0

Utilice Disqus

    
respondido por el GavinR 20.04.2011 - 05:35

Lea otras preguntas en las etiquetas