为WP添加评论楼层号

林继 WordPress 3,375 共写了166个字 (2011-01-07 21:38:20) 没有评论 打印 扫描二维码 百度未收录

1、为主评论添加楼层号(倒序)

  1. /* wp_list_comments() callback */
  2. function mytheme_comment($comment, $args, $depth) {
  3.  $GLOBALS['comment'] = $comment;
  4.  /* 主评论计数器 by zwwooooo */
  5.      global $commentcount,$wpdb, $post;
  6.      $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' AND !comment_parent");
  7.      $cnt = count($comments);//获取主评论总数量
  8.      $page = ( !empty($in_comment_loop) ) ? get_query_var('cpage') : get_page_of_comment( $comment->comment_ID, $args );//获取当前评论列表页码
  9.      $cpp=get_option('comments_per_page');//获取每页评论显示数量
  10.      if(!$commentcount) { //初始化楼层计数器
  11.          if (ceil($cnt / $cpp) == 1 || ($page > 1 && $page  == ceil($cnt / $cpp))) {
  12.              $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数
  13.          } else {
  14.              $commentcount = $cpp * $page + 1;
  15.          }
  16.      }
  17.  /* 主评论计数器 end */
  18.  ?>
  19.  <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
  20.    <div class="comment-body" id="div-comment-<?php comment_ID(); ?>">
  21.      <div class="comment-author vcard">
  22.        <?php if (($comment->comment_author_email) == get_bloginfo ('admin_email')){ ?>
  23.        <img src="<?php echo bloginfo('template_directory'),'/img/my-avatar.gif'; ?>" alt="" class="avatar" />
  24.        <?php } else { echo my_avatar($comment->comment_author_email, $size = '48', $default = $default=get_bloginfo('wpurl') . '/avatar/default.jpg'); } ?>
  25.        <?php printf( ('<cite class="fn">%s</cite> <span class="says">说:</span>'), get_comment_author_link() ); ?>
  26.      </div>
  27.       <?php if ($comment->comment_approved == '0') : ?>
  28.          <em><?php _e('Your comment is awaiting moderation.'); ?></em>
  29.          <br />
  30.       <?php endif; ?>
  31.       <div class="comment-meta commentmetadata"><?php if (function_exists("CID_init")) { CID_print_comment_flag(); echo ' '; CID_print_comment_browser(); } ?>
  32.  <a href="<?php echo esc_attr( get_comment_link( $comment->comment_ID ) ); ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()); ?><!-- 为子评论添加楼层号 by zwwooooo --><?php if( $depth > 1){printf('  # <em2>B%1$s</em2>', $depth-1);} ?> <!-- 主评论楼层号 by zwwooooo -->
  33.              <?php if(!$parent_id = $comment->comment_parent) {printf('# %1$s', --$commentcount);} ?><!-- 当前页每个主评论自动-1 --></a><!-- time_ago(); -->
  34.       <?php edit_comment_link(__('Edit'),' ',''); ?> </div>
  35.       <?php comment_text(); ?>
  36.  
  37.      <div class="reply">
  38.        <?php comment_reply_link( array_merge( $args, array('add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
  39.      </div>
  40.    </div>
  41. <?php }
  42. // -- END ----------------------------------------

2、以下代码为主评论楼层号

  1. <?php if(!$parent_id = $comment->comment_parent) {printf('# %1$s', --$commentcount);} ?>

3、以下代码为子评论添加楼层号
在显示楼层的相关位置插入如下代码即可:

  1. <?php if( $depth > 1){printf('  # <em2>B%1$s</em2>', $depth-1);} ?>

显示效果可以参看我的嵌套评论

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >