带有头像的自定义嵌套WordPress注释

时间:2014-06-08 作者:arvil

我正在开发一个主题,不知道wordpress如何处理评论输出。

我有wp_list_comments 在我的评论中。php,但我不确定如何自定义输出,以获得所需的输出,如所附图像中所示。

关于如何自定义wp_list_comments?

enter image description here

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

插件推荐是离题的,所以你需要自己搜索。至于没有插件,您可以自定义wp_list_comments

在里面wp_list_comments, 有一个callback 可以使用自己的函数重写的参数。

这是我当前使用的自定义回调函数。它与您想要的输出略有不同。你必须迅速地将元素按你想要的顺序排列好。造型也将由您决定。

在函数中添加此代码。php

function pietergoosen_comments( $comment, $args, $depth ) {
    $GLOBALS[\'comment\'] = $comment;
    switch ( $comment->comment_type ) :
        case \'pingback\' :
        case \'trackback\' :
        if ( \'div\' == $args[\'style\'] ) {
            $tag = \'div\';
            $add_below = \'comment\';
        } else {
            $tag = \'li\';
            $add_below = \'div-comment\';
        }
    ?>
    <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
        <p><?php _e( \'Pingback:\', \'pietergoosen\' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( \'(Edit)\', \'pietergoosen\' ), \'<span class="edit-link">\', \'</span>\' ); ?></p>
    <?php
            break;
        default :
        global $post;
    ?>
    <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
        <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
                <footer class="comment-meta">
                    <div class="comment-author vcard">
                        <?php if ( 0 != $args[\'avatar_size\'] ) echo get_avatar( $comment, $args[\'avatar_size\'] ); ?>
                        <?php printf( __( \'%s <span class="says">says:</span>\' ), sprintf( \'<b class="fn">%s</b>\', get_comment_author_link() ) ); ?>
                    </div><!-- .comment-author -->

                    <div class="comment-metadata">
                        <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
                            <time datetime="<?php comment_time( \'c\' ); ?>">
                                <?php printf( _x( \'%1$s at %2$s\', \'1: date, 2: time\' ), get_comment_date(), get_comment_time() ); ?>
                            </time>
                        </a>
                        <?php edit_comment_link( __( \'Edit\', \'pietergoosen\' ), \'<span class="edit-link">\', \'</span>\' ); ?>
                    </div><!-- .comment-metadata -->

                    <?php if ( \'0\' == $comment->comment_approved ) : ?>
                    <p class="comment-awaiting-moderation"><?php _e( \'Your comment is awaiting moderation.\', \'pietergoosen\' ); ?></p>
                    <?php endif; ?>
                </footer><!-- .comment-meta -->

                <div class="comment-content">
                    <?php comment_text(); ?>
                </div><!-- .comment-content -->

                <div class="reply">
                    <?php comment_reply_link( array_merge( $args, array( \'add_below\' => \'div-comment\', \'depth\' => $depth, \'max_depth\' => $args[\'max_depth\'] ) ) ); ?>
                </div><!-- .reply -->
            </article><!-- .comment-body -->
    <?php
        break;
    endswitch; 
}
现在,在您的评论中。php模板,查找wp_list_comments() 作用将其替换为以下代码

<ol class="commentlist">
    <?php wp_list_comments( array(
    \'callback\' => \'pietergoosen_comments\',
    \'style\'      => \'ol\',
    \'short_ping\' => true,
    \'avatar_size\'=> 34,
    ) );
   ?>
</ol><!-- .commentlist -->
这应该让你开始

结束

相关推荐

在自定义的Single-Portfolio.php中使用COMMENTS_TEMPLATE

我希望我的用户能够在我的公文包页面上发表评论。我用自定义帖子创建了一个公文包页面。在我的博客上,我正在使用comments\\u template();然后是评论。php我有代码。在博客方面,它100%有效但是当我添加comments\\u template()时;在公文包单页上,它什么都不做。我没有收到任何错误或任何东西。人们如何在公文包页面中实现评论?您不能使用相同的注释。所有注释的php文件,b谢谢