zamoose
  • 0
Эксперт

Каковы текущие рекомендации по работе с комментариями.Php?

  • 0

Я собираюсь отправить тему в репозиторий.Org и хотел убедиться, что все в порядке. Одна из самых больших дыр в моем дизайне — это шаблон комментариев.

Я взглянул на comments.php в нескольких темах, главная из которых — Twenty Ten, и пришел к еще большему замешательству, чем когда начал. Кажется, что (на основе руководств от Otto, WP Engineer и т. д.) шаблон комментариев был упрощен, но когда я смотрю на исходный код большинства тем, comment.php, они все еще такие же запутанные, как и в файле Christian-Montoya. — производные старые дни.

Итак, помогите мне — как лучше всего настроить шаблон комментариев, который будет отражать современные функциональные возможности WP 3.0/3.1 и при этом поддерживать простоту кода?

Share
  1. Вам действительно не нужно много.

    Заголовок с id=comments

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

    Это будет целью comments_link() цикла статьи.

    Ссылки на постраничные комментарии.

    Обычно я помещаю эти ссылки в функцию и вызываю функцию выше и ниже списка комментариев:

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

    Вы можете использовать пользовательскую функцию обратного вызова, но это не обязательно. Для темы на wp.org я бы использовал gravatars в обратном вызове. И я бы не стал именовать его с помощью my_ . 😉

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

    Как видите, type параметр позволяет отделить обычные комментарии от пингов. Дополнительную информацию см. в кодексе. Если вы создаете два отдельных списка, отметьте, get_option( 'default_ping_status' ); чтобы список не был пустым.

    комментарий_форма();

    Вы можете использовать настройки по умолчанию или добавить свои собственные фильтры. Я использую пользовательский класс, чтобы переместить текстовое поле вверх и изменить некоторые другие мелкие вещи.

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

    И это все.

    Полный код

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

Оставить ответ

You must login to add an answer.