优化WordPress评论楼层号,可同时支持顺序倒序排列

不知道大家是否有关注过,部分集成有评论楼层号的WordPress主题只能按规则在后台中设置讨论 > 在每个页面顶部显示“旧的”评论(顺序排列,如鸟哥的Ality主题)或“新的”评论(倒序排列,如Nana主题),如不按规则设置楼层号就会显示错误。那么我们能不能优化一下楼层号,让它同时支持顺序或倒序而楼层号又不出错呢?办法是有的,今天懿古今就跟大家说一说如何优化WordPress评论楼层号。

第一种情况:倒序排列(即“新的”评论在顶部)</h6

优化WordPress评论楼层号,可同时支持顺序倒序排列

如上图所示,Nana主题的评论就是典型的倒序排列,下面我们来把它优化成同时支持顺序或倒序排列而又不会造成楼层号错误。

具体修改步骤如下:

打开incfunctionscomment-template.php文件,首先找到以下代码(约在15-26行)

  1. global $commentcount,$wpdb, $post;
  2. if(!$commentcount) { //初始化楼层计数器
  3.     $comments = $wpdb->get_results(“SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = ” AND comment_approved = ‘1’ AND !comment_parent”);
  4.     $cnt = count($comments);//获取主评论总数量
  5.     $page = get_query_var(‘cpage’);//获取当前评论列表页码
  6.     $cpp=get_option(‘comments_per_page’);//获取每页评论显示数量
  7.     if (ceil($cnt/$cpp) == 1 || ($page>1 && $page == ceil($cnt/$cpp))) {
  8.         $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数
  9.     } else {
  10.           $commentcount = $cpp * $page + 1;
  11.     }
  12. }

</div

修改成

  1. // 楼层   
  2. $comorder =  get_option(‘comment_order’);
  3. if($comorder == ‘asc’){
  4.     //在页面顶部显示 旧的 评论
  5.     global $commentcount;
  6.     if(!$commentcount) {
  7.         if ( get_query_var(‘cpage’) > 0 )
  8.             $page = get_query_var(‘cpage’)-1;
  9.         else $page = get_query_var(‘cpage’);
  10.             $cpp=get_option(‘comments_per_page’);
  11.             $commentcount = $cpp * $page;
  12.     }
  13. }else{
  14.     //在页面顶部显示 新的 评论
  15.     global $commentcount,$wpdb, $post;
  16.     if(!$commentcount) { //初始化楼层计数器
  17.         $comments = $wpdb->get_results(“SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = ” AND comment_approved = ‘1’ AND !comment_parent”);
  18.         $cnt = count($comments);//获取主评论总数量
  19.         $page = get_query_var(‘cpage’);//获取当前评论列表页码
  20.         $cpp=get_option(‘comments_per_page’);//获取每页评论显示数量
  21.         if (ceil($cnt/$cpp) == 1 || ($page>1 && $page == ceil($cnt/$cpp))) {
  22.             $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数
  23.         } else {
  24.             $commentcount = $cpp * $page + 1;
  25.         }
  26.     }
  27. }

</div

接着找到以下代码

  1. if(!$parent_id = $comment->comment_parent){
  2.                              switch ($commentcount){
  3.                                 case 2 :echo “&nbsp;沙发”;–$commentcount;break;
  4.                                 case 3 :echo “&nbsp;板凳”;–$commentcount;break;
  5.                                 case 4 :echo “&nbsp;地板”;–$commentcount;break;
  6.                                 default:printf(‘&nbsp;%1$s楼’, —$commentcount);
  7.                             }
  8.                         }

</div

修改成

  1. if($comorder == ‘asc’){
  2.                         //在页面顶部显示 旧的 评论
  3.                         if(!$parent_id = $comment->comment_parent){
  4.                              switch ($commentcount){
  5.                                 case 0 :echo “&nbsp;沙发”;++$commentcount;break;
  6.                                 case 1 :echo “&nbsp;板凳”;++$commentcount;break;
  7.                                 case 2 :echo “&nbsp;地板”;++$commentcount;break;
  8.                                 default:printf(‘&nbsp;%1$s楼’, ++$commentcount);
  9.                             }
  10.                         }
  11.                     }else{
  12.                         //在页面顶部显示 新的 评论
  13.                         if(!$parent_id = $comment->comment_parent){
  14.                              switch ($commentcount){
  15.                                 case 2 :echo “&nbsp;沙发”;–$commentcount;break;
  16.                                 case 3 :echo “&nbsp;板凳”;–$commentcount;break;
  17.                                 case 4 :echo “&nbsp;地板”;–$commentcount;break;
  18.                                 default:printf(‘&nbsp;%1$s楼’, —$commentcount);
  19.                             }
  20.                         }
  21.                     }

</div

即可。

PS:使用Nana主题的博主站长们,如果不想手动折腾,可以直接下载优化好的comment-template.php文件上传覆盖即可(懿古今其他主题也可以下载这个comment-template.php文件上传覆盖),或直接下载安装2016年12月24日重新分享的Nana V2.04版本。

 下载地址

第二种情况:顺序排列(即“旧的”评论在顶部)</h6

优化WordPress评论楼层号,可同时支持顺序倒序排列

如上图所示,鸟哥的Ality主题的评论就是典型的倒序排列(个人感觉鸟哥的主题都是这个倒序排列),下面我们来把它优化成同时支持顺序或倒序排列而又不会造成楼层号错误。

具体修改步骤如下:

打开incfunctionscomment-template.php文件,首先找到以下代码(大约在14-21行)

  1. global $commentcount;
  2.     if(!$commentcount) {
  3.         if ( get_query_var(‘cpage’) > 0 )
  4.         $page = get_query_var(‘cpage’)-1;
  5.         else $page = get_query_var(‘cpage’);
  6.         $cpp=get_option(‘comments_per_page’);
  7.         $commentcount = $cpp * $page;
  8.     }

</div

修改成

  1. // 楼层   
  2. $comorder =  get_option(‘comment_order’);
  3. if($comorder == ‘asc’){
  4.     //在页面顶部显示 旧的 评论
  5.     global $commentcount;
  6.     if(!$commentcount) {
  7.         if ( get_query_var(‘cpage’) > 0 )
  8.             $page = get_query_var(‘cpage’)-1;
  9.         else $page = get_query_var(‘cpage’);
  10.             $cpp=get_option(‘comments_per_page’);
  11.             $commentcount = $cpp * $page;
  12.     }
  13. }else{
  14.     //在页面顶部显示 新的 评论
  15.     global $commentcount,$wpdb, $post;
  16.     if(!$commentcount) { //初始化楼层计数器
  17.         $comments = $wpdb->get_results(“SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID AND comment_type = ” AND comment_approved = ‘1’ AND !comment_parent”);
  18.         $cnt = count($comments);//获取主评论总数量
  19.         $page = get_query_var(‘cpage’);//获取当前评论列表页码
  20.         $cpp=get_option(‘comments_per_page’);//获取每页评论显示数量
  21.         if (ceil($cnt/$cpp) == 1 || ($page>1 && $page == ceil($cnt/$cpp))) {
  22.             $commentcount = $cnt + 1;//如果评论只有1页或者是最后一页,初始值为主评论总数
  23.         } else {
  24.             $commentcount = $cpp * $page + 1;
  25.         }
  26.     }
  27. }

</div

接着找到以下代码

  1. if(!$parent_id = $comment->comment_parent){
  2.     switch ($commentcount){
  3.         case 0 :echo “&nbsp;沙发”;++$commentcount;break;
  4.         case 1 :echo “&nbsp;板凳”;++$commentcount;break;
  5.         case 2 :echo “&nbsp;地板”;++$commentcount;break;
  6.         default:printf(‘&nbsp;%1$s楼’, ++$commentcount);
  7.     }
  8. }

</div

修改成

  1. if($comorder == ‘asc’){
  2.                         //在页面顶部显示 旧的 评论
  3.                         if(!$parent_id = $comment->comment_parent){
  4.                              switch ($commentcount){
  5.                                 case 0 :echo “&nbsp;沙发”;++$commentcount;break;
  6.                                 case 1 :echo “&nbsp;板凳”;++$commentcount;break;
  7.                                 case 2 :echo “&nbsp;地板”;++$commentcount;break;
  8.                                 default:printf(‘&nbsp;%1$s楼’, ++$commentcount);
  9.                             }
  10.                         }
  11.                     }else{
  12.                         //在页面顶部显示 新的 评论
  13.                         if(!$parent_id = $comment->comment_parent){
  14.                              switch ($commentcount){
  15.                                 case 2 :echo “&nbsp;沙发”;–$commentcount;break;
  16.                                 case 3 :echo “&nbsp;板凳”;–$commentcount;break;
  17.                                 case 4 :echo “&nbsp;地板”;–$commentcount;break;
  18.                                 default:printf(‘&nbsp;%1$s楼’, —$commentcount);
  19.                             }
  20.                         }
  21.                     }

</div

即可。

结束语</h6

这个办法其实就是通过一个判断语句,直接根据后台设置顶部显示的是“新的”评论还是“旧的”评论来判断楼层计数代码。如果大家所使用的主题有这种只能选择“新的”或“旧的”限制条件,不放按本文折腾一下,这样就可以随心所欲地切换“新的”或“旧的”评论了。

你可能感兴趣的文章
  • 收集最全的WordPress默认主题
  • WordPress分类目录如何添加SEO标题、描述和关键词
  • 如何添加favicon.ico图标?
  • 如何正确使用和修改Nana主题小工具综合文章
  • ZBlogPHP如何实现首页不显示某分类文章?
  • WordPress新手入门教程之准备工作篇
  • 2016如何去除(屏蔽)QQ聊天窗口右侧上中下的广告
  • 修复AMP页面无结构化数据元素logo和image错误

</p

相关推荐

发表回复

房先生
我们将24小时内回复。
2024-05-10 13:50:12
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
2781198
加我微信
[电话联系]
13585372227
[电子邮件]
chaoneo@163.com
取消

选择聊天工具: