在wordpress中为评论添加数字

时间:2013-08-18 11:16:59

标签: php wordpress

我已经看到各种网站使用内置的wordpress评论系统和一个自定义回调(生成他们自己的html,不同于wordpress中的内置评论),为他们网站上的评论添加数字。

Ala - http://mobile.smashingmagazine.com/2013/08/12/creating-high-performance-mobile-websites/

每条评论旁边都有一个数字。 在进行了大量的搜索后,我找不到任何内置的wordpress功能。

我使用自定义calllback来发表评论。

function mytheme_comment($comment, $args, $depth) {
        $GLOBALS['comment'] = $comment;
        extract($args, EXTR_SKIP);

        if ( 'div' == $args['style'] ) {
            $tag = 'div';
            $add_below = 'comment';
        } else {
            $tag = 'li';
            $add_below = 'div-comment';
        }
?>



        <<?php echo $tag ?> <?php comment_class(empty( $args['has_children'] ) ? '' : 'parent') ?> id="comment-<?php comment_ID() ?>">
            <?php if ( 'div' != $args['style'] ) : ?>
            <div id="div-comment-<?php comment_ID() ?>" class="comment-body">
            <?php endif; ?>
                <div class="comment-author vcard">
                    <div class="rounded">
                        <?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
                    </div> <!-- end div rounded -->

                </div> <!-- end div vcard -->
                <div class="comment-meta commentmetadata">

                    <?php printf(__('<cite class="fn">%s</cite> <span class="says"></span>'), get_comment_author_link()) ?>
                    <a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>">
                        <?php

                            printf( __('%1$s at %2$s'), comment_time('F j, Y g:i a')) ?></a><?php edit_comment_link(__('(Edit)'),'  ','' ); 

                        ?>

                    </a>

                    <?php if ($comment->comment_approved == '0') : ?>
                        <em class="comment-awaiting-moderation">
                            <?php _e('Your comment is awaiting moderation.') ?>
                        </em>
                    <br />
                    <?php endif; ?> 
                </div> <!-- end div commentmetadata -->
                <div class="commentsholder">

                    <?php comment_text() ?>

                </div> <!-- end div commentsholder -->

                <div class="reply">
                    <?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
                </div> <!-- end div reply -->

            <?php echo '<div style="clear:both"></div>' ?>
            <?php if ( 'div' != $args['style'] ) : ?>
        </div> <!-- end div commentid -->
        <?php endif; ?>
<?php
        }

任何人都可以告诉我如何为每条评论编号吗?

2 个答案:

答案 0 :(得分:0)

看看二十世纪的主题。它使用有序列表。

<ol class="commentlist">
    <?php wp_list_comments( array( 'callback' => 'twentytwelve_comment', 'style' => 'ol' ) ); ?>
</ol><!-- .commentlist -->

在functions.php twentytwelve_comment函数中,评论包含在<li></li>中。

如果您的评论在多个页面上,或者您想要设置数字样式,则可以使用http://wordpress.org/plugins/gregs-threaded-comment-numbering/之类的插件。阅读here如何使用它。

答案 1 :(得分:0)

我正在探索Alexander Kuzmin的想法,我认为这就是Smashing Magazine如何对他们的评论进行编号。

如果评论是否有线索,那就是以线性方式完成而不关心。

我在TwentyEleven中测试过,并操纵了wp_list_comments( array( 'callback' => 'twentyeleven_comment' ) );的回调。

functions.php

$countcomm = 1;
function twentyeleven_comment( $comment, $args, $depth ) 
{
    global $countcomm; 

    // PRINT THE COMMENTS AND USE $countcomm TO ECHO THE NEW "COMMENT ID"

    // TAKING CARE OF THE COMMENT PERMALINK:
    // CHANGE ALL INSTANCES OF comment_ID() AND $comment->comment_ID
    // TO $countcomm

    $countcomm++;
}