Quais são as melhores práticas recomendadas atualmente para o comments.php?

4

Estou me preparando para enviar um tema para o repositório .Org e queria ter certeza de que tudo está em ordem. Um dos maiores buracos deixados no meu design é o modelo de comentários.

Eu dei uma olhada em comments.php em alguns temas, Vinte e dez principais entre eles e saíram mais confusos do que quando eu comecei. Parece que (baseado em tutoriais da Otto, WP Engineer, etc.) o modelo de comentários foi simplificado, mas quando eu olho para a fonte para os comentários de muitos temas.php, eles ainda são tão complicados quanto no Christian-Montoya. Perdidos dias de idade.

Então me ajude - qual é a melhor maneira de configurar um modelo de comentários que capture a funcionalidade do estado da arte a partir do WP 3.0 / 3.1 e ainda mantenha a simplicidade do código?

    
por ZaMoose 20.04.2011 / 05:26

2 respostas

6

Você realmente não precisa de muita coisa.

Uma manchete com id = comentários

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

Este será o alvo de comments_link() no loop de artigos.

Links para comentários paginados.

Normalmente, coloco esses links em uma função e chamo a função acima e abaixo da lista de comentários:

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 ()

Você pode usar uma função de retorno de chamada personalizada, mas não precisa. Para um tema no wp.org eu usaria gravatars no retorno de chamada. E eu não o classificaria com my_ . ;)

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

Como você pode ver, o parâmetro type permite separar os comentários normais dos pings. Consulte o códice para obter mais informações. Se você criar duas listas separadas, verifique get_option( 'default_ping_status' ); para evitar uma lista vazia.

comment_form ();

Você pode usar as configurações padrão ou adicionar seus próprios filtros. Eu uso uma classe personalizada para mover a textarea para o topo e reorganizar algumas outras coisas menores.

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();
}

E isso é tudo.

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();
}
    
por fuxia 20.04.2011 / 11:35
0

Use Disqus

    
por GavinR 20.04.2011 / 05:35