实现此目的前有个条件:必须使用mytheme_comment回调函数或者是for循环获取评论列表,要么你就去修改WordPress源文件.
照旧先上张图给大伙开开眼界.我是在主题文件夹function.php里的mytheme_comment函数中修改(这里只贴出了主要代码).另外,搞这个玩意会多出大概15次查询.
<?php //为了程序段高亮好看些,如复制请删除此程序段最前面的'<?php'及最后面的'?>'
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
$GLOBALS['zwID'];//座位编号
$GLOBALS['zwID2'];
//座位编号(同上,但这个用于在每个页面顶部显示新的评论样式的)
//因我博客日志评论列表顶部显示的是最老评论而留言板却是相反,不然沙发就被乱坐了.
$GLOBALS['zw']=array(' <span style="color:red">坐在沙发上</span>',' <span style="color:blue">坐在板凳上</span>','
<span style="color:green">坐在地板上</span>');
$page = ( !empty($in_comment_loop) ) ? get_query_var('cpage') :
get_page_of_comment( $comment->comment_ID, $args );//获取当前评论列表页码
if ($page==1){
//如果不是第一页就没必要再浪费资源了
$rtl = (null==$args['reverse_top_level']);
//获取每个页面顶部到底是显示新的还是老的评论
$cpp=get_option('comments_per_page');
//获取每页评论显示数量
$parent_id = $comment->comment_parent;
//用来判断一条评论是否为父级评论
}
<?php printf(__('<cite class="fn">%s%s</cite> <span class="says">说:</span>'), get_comment_author_link(),
$page==1 && !$parent_id ? ($rtl ? ($GLOBALS['zw'][++$GLOBALS['zwID']-1]):$GLOBALS['zw']
[$cpp-(++$GLOBALS['zwID2'])]):'')
//$page==1 && !$parent_id意思为如果页码在第一页并且为父级评论
//$rtl为不同排列方式从而针对性的让第1,2,3位父级评论作者显示坐上了沙发还是板凳或者是地板
?>
}?>
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
$GLOBALS['zwID'];//座位编号
$GLOBALS['zwID2'];
//座位编号(同上,但这个用于在每个页面顶部显示新的评论样式的)
//因我博客日志评论列表顶部显示的是最老评论而留言板却是相反,不然沙发就被乱坐了.
$GLOBALS['zw']=array(' <span style="color:red">坐在沙发上</span>',' <span style="color:blue">坐在板凳上</span>','
<span style="color:green">坐在地板上</span>');
$page = ( !empty($in_comment_loop) ) ? get_query_var('cpage') :
get_page_of_comment( $comment->comment_ID, $args );//获取当前评论列表页码
if ($page==1){
//如果不是第一页就没必要再浪费资源了
$rtl = (null==$args['reverse_top_level']);
//获取每个页面顶部到底是显示新的还是老的评论
$cpp=get_option('comments_per_page');
//获取每页评论显示数量
$parent_id = $comment->comment_parent;
//用来判断一条评论是否为父级评论
}
<?php printf(__('<cite class="fn">%s%s</cite> <span class="says">说:</span>'), get_comment_author_link(),
$page==1 && !$parent_id ? ($rtl ? ($GLOBALS['zw'][++$GLOBALS['zwID']-1]):$GLOBALS['zw']
[$cpp-(++$GLOBALS['zwID2'])]):'')
//$page==1 && !$parent_id意思为如果页码在第一页并且为父级评论
//$rtl为不同排列方式从而针对性的让第1,2,3位父级评论作者显示坐上了沙发还是板凳或者是地板
?>
}?>
相信这个玩意在个人博客中绝对的值得拥有,挺好玩的.另外,很多朋友因为没有使用自定义callback回调函数而对此望而却步,其实相反,因为自定义回调函数是可以自行添加的,并且很简单.
- 转载请注明来源:凤凰不归巢 » 《WP非插件显示谁坐了沙发》
- 本文链接地址:http://wancheng.li/1371.html

本文有 89 条评论
学习了下回懂了.
:han: 域名很长
来了 留点东西 不知道能不能加个友情
:toux: 肯定可以的啊,我弄好啦
过段时间我也玩玩wp
这个不错。沙发。
沙发早没啦,晚上我发布那沙发插件你记得来坐哦.呵呵 :cx:
我说错了。我是说这个沙发代码不错,谁知道我还没说完就提交了
如果板凳是沙发的嵌套呢?
取消父级评论判断就可以啦,另外也难得你来我这耍哦.呵呵
换我来你这里偷师了 :toux:
:jp: 别这么说,要不是你那博客我哪有参考对象
hello 申请友链 , 本站已经添加好了 , , 对了你的友情链接页面出错了 代码是 , Parse error: syntax error, unexpected T_STRING in /home/sixi/public_html/wp-content/themes/D-Z-Theme-Pro_CP_Update/comments.php on line 33 , 赶紧修正一下吧,将你的目录给暴出来了。
SORRY,你搞错了.我没有D-Z-Theme-Pro_CP_Update这个目录,另外我也弄好了链接,不过是随机的哦
好东西啊~呵呵
这个我觉得可以缓存吧,大于三次评论就不用从数据库里去找了,可以减少请求数,具体还不知道怎么用,好像自身有个add_wp_cache函数
没必要,在数据库里找无非就多了最多15次查询.PHP文件的请求数倒是没变.
你好,我按照你的方法,在我主题的function里面搜索mytheme_comment,可是搜索不到,还有你文中的好几个字符都是搜索不到,请教如何解决?
mytheme_comment并不是是个主题就有的,你可以自行添加一个
:taoq: 哇,我也碰到夜猫子了,我刚才尝试了自己添加了,可是添加后就访问不了了,开头结尾都去掉的…. , 成哥,你看下http://wordpress.org.cn/redirect.php?tid=62738&goto=lastpost#lastpost帖子,不知道你介意不介意,如果介意你看完就把我这个回复删了,解答下迷津就好啦,谢谢了~~
说白了,就是想干成你这样,还有你的页面切换的效果好好啊,能教教不~ :smm:
加我Q,我帮你修改,然后你自己再研究
你QQ多少?
不能用的 , 就说明白点不能吗 , 咱是盲文
这兄台真幽默,不能用的我发来做啥?