欢迎您光临爱永设计官网!
电话图标 服务热线/微信:13436537174 QQ咨询:276583799

新闻资讯

news

wordpress主评论加上楼层号(沙发、椅子……)

发表日期:2013-12-17 文章作者:爱永设计  浏览次数:17339 次

以前想给自己博客评论加上楼层号,因为主题评论中有楼层号参数$commentcount,所以在显示楼层号的地方直接给加个判断,如下:

<?php
switch ($commentcount){
	case 0 :echo "沙发";++$commentcount;break;
	case 1 :echo "椅子";++$commentcount;break;
	case 2 :echo "板凳";++$commentcount;break;
	default:printf('%1$s楼', ++$commentcount);
}
?>

楼层号倒是显示了,但是却有点问题:

  • 一是每个评论页面的顶端都显示有沙发、椅子、板凳(在每个页面顶部显示最后评论)……
  • 二是如果我回复了沙发评论,我的评论成了椅子了……

我这个主题的评论代码直接采用萧涵主题的,用wp_list_comments回调,需要自定一个回调方法(http://codex.wordpress.org/Template_Tags/wp_list_comments),先看下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>
<?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?><?  php printf(__('<cite>%s</cite> <span>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><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>
<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth'
=>$args['max_depth']))) ?>
</div>
</div>
<?php  }

我的评论代码和这类似,只是多了个$commentcount来显示楼层号。

首先是每个评论分布都显示楼层号的问题,原因是每个评论页$commentcount都初始化为0,所以得改一改。

function mytheme_comment($comment, $args, $depth) {
	$GLOBALS['comment'] = $comment;
	global $commentcount;
	if(!$commentcount) {
		$page = get_query_var('cpage')-1;
		$cpp=get_option('comments_per_page');//获取每页评论数
		$commentcount = $cpp * $page;
	}

然后只在主评论显示楼层号,得加上一个判断

<?php
if(!$parent_id = $comment->comment_parent){
	switch ($commentcount){
		case 0 :echo "沙发";++$commentcount;break;
		case 1 :echo "椅子";++$commentcount;break;
		case 2 :echo "板凳";++$commentcount;break;
		default:printf('%1$s楼', ++$commentcount);
	}
}
?>

在wp_comments中有一字段是comment_parent,记录的相应评论的id,若是该评论不是对某条的回复的话这一项即为0。这样就加上了一个判断,对回复评论的评论路过。

 

ok,解决,效果看评论

标签:,
将文章分享到..
相关资讯
最新主题模板
随机新闻
最新网站案例
  • 更多 +我们能做什么

    致力于互联网品牌建设与网络营销,专业领域包括网站建设、网站模板、移动互联网营销、wordpress平台开发等,服务范围涵盖基础的域名服务、主机 服务;企业邮箱、云服务器、网络营销等应用服务,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。

  • 更多 +网站模板优势

  • 更多 +关于爱永设计

    爱永设计工作室一直致力于品牌精美的网页设计、网页制作DIV+CSS布局、JS效果、精美网站模板、标志设计、专业仿站, 低廉的价格,真诚的服务,我们拥有全国各地的客户群体和各行业的成功案例。以一流的服务,出色的网页设计和制作能力,认真严谨的工作态度为客户提供优质满意的服务。期待与您的合作!

Copyright © 2012 - 2024 aysheji.com All Rights Reserved 爱永设计 版权所有
邮箱:aysheji@163.com 在线客服:276583799 模板演示地址:www.aymoban.com 备案号:京ICP备13060102号-3
服务内容: 网页设计 网站建设 网站制作 网站模板 婚庆网站模板 摄影网站 手机网站制作 自适应网站制作