本文主要介紹了給WordPress中的留言加上樓層號的PHP代碼實例,這裡只針對主評論而不針對層疊式的樓中樓裡的評論。希望對大家有幫助。
最近突然發現博客的評論樓層有點問題,之前一直設置的是“在每個頁面頂部顯示新的評論”,也就是所謂的倒序顯示評論,但是主題只支持順序的評論樓層好,於是樓層和樓層號對不上。搜了一下在zww.me發現有實現的代碼,但是放到博客之後無法正常工作,比如限制分頁顯示為25條的時候,文章只有一條評論時也顯示的25樓。折騰了一下搞定了,做個記錄,也供大家參考。
在主題檔functions.php中找到$GLOBALS['comment'] = $comment;在後面加上下面的程式碼:
/* 主评论计数器 */ global $commentcount,$wpdb, $post; if(!$commentcount) { //初始化楼层计数器 if ( get_option('comment_order') === 'desc' ) { //倒序 $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' AND !comment_parent"); $cnt = count($comments);//获取主评论总数量 $page = get_query_var('cpage');//获取当前评论列表页码 $cpp=get_option('comments_per_page');//获取每页评论显示数量 if (ceil($cnt / $cpp) == 1 || ($page > 1 && $page == ceil($cnt / $cpp))) { $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数 } else { $commentcount = $cpp * $page + 1; } }else{ //顺序 $page = get_query_var('cpage')-1; $cpp=get_option('comments_per_page');//获取每页评论数 $commentcount = $cpp * $page; } } /* 主评论计数器 end */ if ( !$parent_id = $comment->comment_parent ) { $commentcountText = '<p class="floor">'; if ( get_option('comment_order') === 'desc' ) { //倒序 $commentcountText .= --$commentcount . '楼'; } else { switch ($commentcount) { case 0: $commentcountText .= '<span>沙发!</span>'; ++$commentcount; break; case 1: $commentcountText .= '<span>板凳!</span>'; ++$commentcount; break; case 2: $commentcountText .= '<span>地板!</span>'; ++$commentcount; break; default: $commentcountText .= ++$commentcount . '楼'; break; } } $commentcountText .= '</p">'; } }
然後在適當的位置加上以下程式碼輸出樓層號碼
<?php echo $commentcountText; //主评论楼层号 - by zwwooooo ?>
#
get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = '' AND comment_approved = '1' AND !comment_parent"); $cnt = count($comments);//获取主评论总数量 $page = get_query_var('cpage');//获取当前评论列表页码 $cpp=get_option('comments_per_page');//获取每页评论显示数量 if (ceil($cnt / $cpp) == 1 || ($page > 1 && $page == ceil($cnt / $cpp))) { $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数 } else { $commentcount = $cpp * $page + 1; } }else{ //顺序 $page = get_query_var('cpage')-1; $cpp=get_option('comments_per_page');//获取每页评论数 $commentcount = $cpp * $page; } } /* 主评论计数器 end */ if ( !$parent_id = $comment->comment_parent ) { $commentcountText = ''; if ( get_option('comment_order') === 'desc' ) { //倒序 $commentcountText .= --$commentcount . '楼'; } else { switch ($commentcount) { case 0: $commentcountText .= '沙发!'; ++$commentcount; break; case 1: $commentcountText .= '板凳!'; ++$commentcount; break; case 2: $commentcountText .= '地板!'; ++$commentcount; break; default: $commentcountText .= ++$commentcount . '楼'; break; } } $commentcountText .= '
'; } } extract($args, EXTR_SKIP); if ( 'p' == $args['style'] ) { $tag = 'p'; $add_below = 'comment'; } else { $tag = 'li'; $add_below = 'p-comment'; } ?> < id="comment-">comment_approved == '0') : ?>
$add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
<?php echo $commentcountText; //主评论楼层号 - by zwwooooo ?>
相關推薦:
以上是給WordPress中的留言加上樓層號的詳細內容。更多資訊請關注PHP中文網其他相關文章!