it-swarm.com.de

Was sind die aktuell empfohlenen Best Practices für comments.php?

Ich mache mich bereit, ein Thema für das .Org-Repo einzureichen und wollte sicherstellen, dass alles in Ordnung ist. Eine der größten Lücken in meinem Design ist die Vorlage für Kommentare.

Ich habe mir comments.php in einigen Themen angesehen, darunter Twenty Ten Chief, und bin verwirrter davongekommen als zu Beginn. Es scheint, als ob (basierend auf Tutorials von Otto, WP Engineer usw.) die Vorlage für Kommentare vereinfacht wurde, aber wenn ich mir die Quelle für die comments.php der meisten Themen anschaue, sind sie immer noch so verschlungen wie in den von Christian-Montoya abgeleiteten Tagen.

Also, helfen Sie mir - wie können Sie am besten eine Kommentar-Vorlage einrichten, die die neuesten Funktionen ab WP 3.0/3.1 erfasst und dabei die Code-Einfachheit beibehält?

4
ZaMoose

Du brauchst wirklich nicht viel.

Eine Überschrift mit id = comments

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

Dies ist das Ziel für comments_link() in der Artikelschleife.

Links für paginierte Kommentare.

Normalerweise füge ich diese Links in eine Funktion ein und rufe die Funktion über und unter der Kommentarliste auf:

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

Sie können eine benutzerdefinierte Rückruffunktion verwenden, müssen dies jedoch nicht. Für ein Thema auf wp.org verwende ich im Rückruf Gravatare. Und ich würde es nicht mit my_ benennen. ;)

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

Wie Sie sehen, können Sie mit dem Parameter type normale Kommentare von Pings trennen. Weitere Informationen finden Sie im Codex . Wenn Sie zwei separate Listen erstellen, markieren Sie get_option( 'default_ping_status' );, um eine leere Liste zu vermeiden.

comment_form ();

Sie können die Standardeinstellungen verwenden oder eigene Filter hinzufügen. Ich benutze eine benutzerdefinierte Klasse , um den Textbereich nach oben zu verschieben und einige kleinere andere Dinge neu anzuordnen.

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

Und das ist alles.

Code vervollständigen

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

Benutze Disqus

0
GavinR