Quelles sont les meilleures pratiques actuellement recommandées pour comments.php?

4

Je me prépare à soumettre un thème au rapport .Org et je voulais m'assurer que tout est en ordre. L’un des plus gros trous de ma conception est le modèle de commentaires.

J'ai jeté un coup d'œil à comments.php dans quelques thèmes, dont vingt-dix principaux parmi eux et qui sont repartis plus confus que lorsque j'ai commencé. Il semble que (basé sur des tutoriels d'Otto, de WP Engineer, etc.) le modèle de commentaires ait été simplifié, mais quand je regarde la source du commentaire comments.php, ils sont toujours aussi compliqués que dans Christian-Montoya. jours passés.

Alors aidez-moi - quel est le meilleur moyen de configurer un modèle de commentaires qui capture les fonctionnalités de pointe de WP 3.0 / 3.1 tout en maintenant la simplicité du code?

    
posée ZaMoose 20.04.2011 - 05:26

2 réponses

6

Vous n’avez vraiment pas besoin de beaucoup.

Un titre avec id = comments

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

Ce sera la cible pour comments_link() dans la boucle de l'article.

Liens pour les commentaires paginés.

Habituellement, je mets ces liens dans une fonction et appelle la fonction située au-dessus et au-dessous de la liste de commentaires:

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

Vous pouvez utiliser une fonction de rappel personnalisée, mais ce n’est pas obligatoire. Pour un thème sur wp.org, j’utiliserais des gravatars dans le rappel. Et je ne l’espérerais pas avec my_ . ;)

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

Comme vous pouvez le constater, le paramètre type vous permet de séparer les commentaires normaux des pings. Consultez le codex pour plus d'informations. Si vous créez deux listes distinctes, cochez get_option( 'default_ping_status' ); pour éviter une liste vide.

comment_form ();

Vous pouvez utiliser les paramètres par défaut ou ajouter vos propres filtres. J'utilise une classe personnalisée pour déplacer la zone de texte vers le haut et réorganiser d'autres éléments mineurs.

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

Et c'est tout.

Code complet

<?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();
}
    
réponse donnée fuxia 20.04.2011 - 11:35
0

Utilisez Disqus

    
réponse donnée GavinR 20.04.2011 - 05:35

Lire d'autres questions sur les étiquettes