Welcome, Old Sport!

终于可以盖楼了

by ilikecss ON 2012/02/01 11465

网上看了许多关于WordPress评论盖楼的文章,以前觉得没什么必要去搞这玩意,直到今天看了一篇文章还不错,就索性把这个功能完成了,我把文章概要一下和大家分享。

前提:

1. 当然是要在 WordPress 后台开启嵌套评论

2. 所用主题支持嵌套(目前的主题基本都支持)

3. 主题有使用 mytheme_comment 回调函数

Step1. function.php的WP官方的默认 mytheme_comment 回调函数

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

?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
	<div id="comment-<?php comment_ID(); ?>">
		<div class="comment-author vcard">
		<?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?>
		<?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
	</div>
	<?php if ($comment->comment_approved == '0') : ?>
		<em><?php _e('Your comment is awaiting moderation.') ?></em>
		<br />
	<?php endif; ?>
	<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),'  ','') ?></div>
		<?php comment_text() ?>
		<div class="reply">
			<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
		</div>
	</div>
<?php }

Step2. 替换上面的代码

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

	global $commentcount;
	if(!$commentcount) { //%u521D%u59CB%u5316%u697C%u5C42%u8BA1%u6570%u5668
		$page = get_query_var('cpage')-1;
		$cpp=get_option('comments_per_page');//%u83B7%u53D6%u6BCF%u9875%u8BC4%u8BBA%u6570
		$commentcount = $cpp * $page;
	}


?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
	<div id="comment-<?php comment_ID(); ?>">
		<div class="comment-author vcard">
		<?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?>
		<?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
	</div>
	<?php if ($comment->comment_approved == '0') : ?>
		<em><?php _e('Your comment is awaiting moderation.') ?></em>
		<br />
	<?php endif; ?>
	<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),'  ','') ?></div>
		<?php comment_text() ?>
		<div class="reply">
			<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
		</div>
		<div class="floor"><!-- %u4E3B%u8BC4%u8BBA%u697C%u5C42%u53F7 by zwwooooo -->
			<?php if(!$parent_id = $comment->comment_parent) {printf('#%1$s',   $commentcount);} ?><!-- %u5F53%u524D%u9875%u6BCF%u4E2A%u4E3B%u8BC4%u8BBA%u81EA%u52A8 1 -->
		</div>
	</div>
<?php }

注意:


	global $commentcount;
	if(!$commentcount) { 
		$page = get_query_var('cpage')-1;
		$cpp=get_option('comments_per_page');
		$commentcount = $cpp * $page;
	}
<div class="floor"><!-- 主评论楼层号 -->
       <?php if(!$parent_id = $comment->comment_parent) {printf('#%1$s',   $commentcount);} ?><!-- 当前页每个主评论自动+1 -->
</div>

其实只增加了上面两段代码,<div class="floor"></div>是显示楼层数的HTML,可自己添加CSS样式,默认是数字显示楼层,也可以重新设置为汉字”楼层”

转载自 只在WP主评论加上楼层号的方法(支持评论分页)

6条评论
  1. #1

    airoschou说道:

    沙发先撩掉~

  2. #2

    LZ什么的最好了说道:

    1L灰常过分~

  3. #3

    Marvin说道:

    看着挺好的




TOP