目前针对Comments.php推荐的最佳实践是什么?

时间:2011-04-20 作者:ZaMoose

我正准备向提交一个主题。Org repo并希望确保一切正常。我的设计中留下的最大漏洞之一是注释模板。

我看了一下评论。php有几个主题,其中有210个是主要主题,并且比我开始时更加困惑。看起来(基于Otto、WP Engineer等的教程)注释模板已经简化,但当我查看大多数主题注释的来源时。php,它们仍然像基督教蒙托亚时代一样错综复杂。

那么,请帮助我——设置注释模板的最佳方法是什么?该模板将捕获WP 3.0/3.1中最先进的功能,同时保持代码的简单性?

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

你真的不需要太多。

id=注释的标题

<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\\u list\\u comments()您可以使用自定义回调函数,但不必这样做。关于wp的主题。我会在回调中使用Gravatar。我不会用my_. ;)

<ol class="commentlist">
<?php
wp_list_comments(
    array (
        \'type\'     => \'comment\'
    ,   \'style\'    => \'ul\'
    ,   \'callback\' => \'my_comment_callback\'
    )
);
?></ol>
如您所见type 参数允许您将普通注释与ping分开。请参见codex 了解更多信息。如果构建两个单独的列表,请选中get_option( \'default_ping_status\' ); 避免出现空列表。

comment\\u form()

您可以使用the default 设置或添加自己的过滤器。我使用custom class 将文本区域移到顶部并重新排列其他一些次要内容。

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

SO网友:GavinR

Use Disqus

结束

相关推荐

即使未选中“Allow Comments”,也会显示评论输入屏幕

我的单曲。php和索引。php我在这段代码中加入了注释输入例程。。。<?php if(get_option(\'allow_comments_posts\')){comments_template();} ?> 但是,当具体帖子被单独查看时。php没有选中“允许评论”,我不希望出现评论模板。我的印象是comments\\u template()例程自动管理这个,但显然我需要包装它或传递参数?