实现此目的前有个条件:必须使用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 条评论
zww传送过来,等会就加上这个功能
喜欢就好.嘿
不用插件能将楼层数也整合进去吗,像zwwooooo一样
$GLOBALS['zwID2'];后面加一个$GLOBALS['floorID'];接着再到< ?php printf(__('%s%s%s 说:‘),++$GLOBALS['floorID'].’楼 ‘,get_comment_author_link(), , , $page==1 && !$parent_id ? ($rtl ? ($GLOBALS['zw'][++$GLOBALS['zwID']-1]):$GLOBALS['zw'] , , [$cpp-(++$GLOBALS['zwID2'])]):”)
好像不能同时兼顾,有楼层就没有沙发,有沙发就没楼层
楼层是不论如何都在,沙发只只有父级评论才有.不存在兼容问题.
已经ok了,谢谢了
:dx: 不客气
这个要玩下 :cx:
不错不错!
這功能不錯的說。