• A+

WordPress侧边栏调用带Gravatar头像的最新评论的方法

   2018-11-13 阅读: 488 次    评论 1 条       百度已收录
获得信任的技巧就是避免使用任何技巧
本文共850个字,预计阅读时间需要3分钟。

我本人最近迷上了WordPress,在浏览他人的站点时,看到侧边栏显示最新评论的效果,很是喜欢。但是本人代码又不会写,只能是在别人代码基础上进行修改(博主我是爱瞎折腾性的)。网上找了好久,终于给找到了两种实现方法,下面就说说如何使用。

方法一、
1、在主题的 functions.php 的最后一个 ?> 前面添加下面的代码:

  1. //边栏评论
  2. function h_comments($outer,$limit){
  3.  global $wpdb;
  4.  $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url,comment_author_email, SUBSTRING(comment_content,1,22) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' AND user_id='0' AND comment_author != '$outer' ORDER BY comment_date_gmt DESC LIMIT $limit";
  5.  $comments = $wpdb->get_results($sql);
  6.  foreach ($comments as $comment) {
  7.  $output .= '<li>'.get_avatar( $comment, 32,"",$comment->comment_author).' <p class="s_r"><a href="'. get_permalink($comment->ID) .'#comment-' . $comment->comment_ID . '" title="《'.$comment->post_title . '》上的评论"><span class="s_name">'.strip_tags($comment->comment_author).':</span><span class="s_desc">'. strip_tags($comment->com_excerpt).'</span></a></p></li>';
  8.  }
  9.  $output = convert_smilies($output);
  10.  echo $output;
  11. }

2、在主题的 sidebar.php 文件使用下面的调用代码即可:

  1. <h3>最新评论</h3>
  2.  <div id="comment-list">
  3.  <ul>
  4.  <?php h_comments($outer='博主',$limit='10'); ?>
  5.  </ul>
  6.  </div>

注:$outer 后面应填写博主的昵称,这样可以使博主的评论不在边栏评论中显示;$limit 后面填写的是调用数量,10表示10条。

到这里就基本搞定了,剩下的就是根据自己的主题来修改CSS样式即可。

下面的CSS可根据自己网站样式进行修改:

  1. #comment-list{width:280px;}
  2. #comment-list li{height:40px;border-bottom:1px dashed #eee;padding:8px 0}
  3. #comment-list li a{display:inline;width:280px;height:40px;cursor:pointer}
  4. #comment-list .avatar{float:left;width:32px;height:32px;border:1px dashed #eee;padding:2px}
  5. #comment-list .s_r{float:left;margin-left:5px;height:40px}
  6. #comment-list .s_name{display:block;overflow:hidden;width:222px;height:20px;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
  7. #comment-list .s_desc{display:block;overflow:hidden;width:222px;height:20px;color:#999;text-overflow:ellipsis;white-space:nowrap;line-height:20px}

方法二、
1、新建一个r_comment.php,并复制下列代码:

  1. <?php if (get_option('swt_type') == 'Display') { ?>
  2. <div class="r_comment">
  3. <ul>
  4.  <?php
  5.  global $wpdb;
  6.  $my_email = get_bloginfo ('admin_email');
  7.  $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url,comment_author_email, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' AND comment_author_email != '$my_email' ORDER BY comment_date_gmt DESC LIMIT 10";
  8.  $comments = $wpdb->get_results($sql);
  9.  $output = $pre_HTML;
  10.  foreach ($comments as $comment) {
  11.  $a= get_bloginfo('wpurl') .'/avatar/'.md5(strtolower($comment->comment_author_email)).'.jpg';
  12.  $output .= "\n<li><img src='". $a ."' alt=\"$comment->comment_author\" class='avatar'/>$comment->comment_author:<br /><a href=\"" . get_permalink($comment->ID) ."#comment-" . $comment->comment_ID . "\" title=\"查看: " .$comment->post_title . "\">" . strip_tags($comment->com_excerpt)."</a></li>";
  13.  }
  14.  $output .= $post_HTML;
  15.  $output = convert_smilies($output);
  16.  echo $output;
  17.  ?> 
  18. </ul>
  19. </div>
  20.  <?php { echo ''; } ?>
  21.  <?php } else { include(TEMPLATEPATH . '/includes/r_comment2.php'); } ?>

2、再新建一个r_comment2.php,然后复制下列代码并保存:

  1. <div class="r_comment">
  2. <ul>
  3.  <?php
  4.  global $wpdb;
  5.  $my_email = get_bloginfo ('admin_email');
  6.  $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url,comment_author_email, SUBSTRING(comment_content,1,50) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' AND comment_author_email != '$my_email' ORDER BY comment_date_gmt DESC LIMIT 10";
  7.  $comments = $wpdb->get_results($sql);
  8.  $output = $pre_HTML;
  9.  foreach ($comments as $comment) {$output .= "\n<li>".get_avatar(get_comment_author_email(), 40).strip_tags($comment->comment_author).":<br />" . " <a href=\"" . get_permalink($comment->ID) ."#comment-" . $comment->comment_ID . "\" title=\"查看: " .$comment->post_title . "\">" . strip_tags($comment->com_excerpt)."</a></li>";}
  10.  $output .= $post_HTML;
  11.  $output = convert_smilies($output);
  12.  echo $output;
  13.  ?> 
  14. </ul>
  15. </div>

3、在当前主题目录下新建一个includes的文件夹,并将r_comment.php和r_comment2.php上传至该文件夹内。
4、在主题的sidebar.php 文件使用下面的调用代码即可:

  1. <h3>最新评论</h3>
  2. <?php include('includes/r_comment.php'); ?>

5、到此基本上搞定了,下面附上该CSS代码,可根据自己网站情况进行修改:

  1. .r_comment {}
  2. .r_comment ul {list-style-type:none;}
  3. .r_comment li {font-family:Microsoft YaHei;line-height:24px; clear:both;height:auto; overflow:hidden;color:#5bc0eb;font-size:14px}
  4. .r_comment ul li img.avatar {float:left;padding:3px;margin:3px 4px 0 0;background:#fff;border: 1px solid #ddd;border-radius:50%;width:40px;height:40px;}
  5. .r_comment_author{font-size:14px;margin:0;padding:0;color:#5bc0eb}
  6. .r_comment a{font-family:Microsoft YaHei;font-size:16px;}

好了,侧边栏实现最新评论显示的两种方法就介绍完了,上面两种方法我都试过,可以实现。其中方法一取自Wordpress大学的《WordPress边栏调用带Gravatar头像的最新评论》,在此表示感谢!!方法二,本人再次找的话,又找不见了,如日后本人再次看到时,一定附上链接。

本文地址:https://www.chyiyang.cn/19.html
本文标题:WordPress侧边栏调用带Gravatar头像的最新评论的方法
版权声明:本站所有文章除特别声明外,均采用 署名-非商业性使用-禁止演绎 4.0 国际 许可协议。请尊重他人的劳动成果,转载请写明出处!
所属分类: WordPress

发表评论


图片 表情

目前评论:1 条  其中:访客  1 条  站长  0 条
  1. Fatansy
    Fatansy 【农民】 回复

    感谢博主分享,这个正是我想要的,经过测试完全可以试,棒棒的 [赞]