为你的WordPress博客添加CSS3炫酷读者墙,也就是把你文章的评论最活跃的读者显示在单独的一个页面,先看看效果吧:
1.复制主题的page.php,另存为readerwall.php,然后在其顶部添加代码
1 2 3 4 5 | < ?php /* Template Name: Reader wall */ ?> |
2.接着改文件下面找到
1 | < ?php the_content( '' );?> |
在它的前面添加下面的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <!-- start 读者墙 Edited By iSayme--> <?php $query = "SELECT COUNT(comment_ID) AS cnt, comment_author, comment_author_url, comment_author_email FROM (SELECT * FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->posts.ID=$wpdb->comments.comment_post_ID) WHERE comment_date > date_sub( NOW(), INTERVAL 24 MONTH ) AND user_id='0' AND comment_author_email != '这里改成你自己的邮箱' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 39" ; //大家把管理员的邮箱改成你的,最后的这个39是选取多少个头像,大家可以按照自己的主题进行修改,来适合主题宽度 $wall = $wpdb ->get_results( $query ); $maxNum = $wall [0]->cnt; foreach ( $wall as $comment ) { $width = round (40 / ( $maxNum / $comment ->cnt),2); //此处是对应的血条的宽度 if ( $comment ->comment_author_url ) $url = $comment ->comment_author_url; else $url = "#" ; $avatar = get_avatar( $comment ->comment_author_email, $size = '36' , $default = get_bloginfo( 'wpurl' ). '/avatar/default.jpg' ); $tmp = "<li><a target=\"_blank\" href=\"" . $comment ->comment_author_url. "\">" . $avatar . "<em>" . $comment ->comment_author. "</em> <strong>+" . $comment ->cnt. "</strong></br>" . $comment ->comment_author_url. "</a></li>" ; $output .= $tmp ; } $output = "<ul class=\"readers-list\">" . $output . "</ul>" ; echo $output ; ?> <!-- end 读者墙 --> |
3.在主题的style.css文件中添加下面的css样式(我修改过,你也可以根据你自己的主题修改相应的代码)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | .readers-list { line-height: 18px; text-align: left; overflow: hidden; _zoom: 1 } .readers-list li { width: 200px; float: left; *margin-right: -1px } .readers-list a, .readers-list a:hover strong {
background-image: -webkit-linear-gradient(#f8f8f8, #f2f2f2); background-image: -moz-linear-gradient(#f8f8f8, #f2f2f2); background-image: linear-gradient(#f8f8f8, #f2f2f2) } .readers-list a { position: relative; display: block; height: 36px; margin: 4px; font-size:12px; padding: 4px 4px 4px 44px; color: #999; overflow: hidden; border: #ccc 1px solid; border-radius: 2px; box-shadow: #eee 0 0 2px } .readers-list img, .readers-list em, .readers-list strong { -webkit-transition: all .2s ease-out; -moz-transition: all .2s ease-out; transition: all .2s ease-out } .readers-list img { width: 36px; height: 36px; float: left; margin: 0 8px 0 -40px; border-radius: 2px } .readers-list em { color: #666; font-style: normal; margin-right: 10px } .readers-list strong { color: #ddd; width: 40px; text-align: right; position: absolute; right: 6px; top: 4px; font: bold 14px/16px microsoft yahei } .readers-list a:hover { border-color: #bbb; box-shadow: #ccc 0 0 2px; background-color: #fff; background-image: none } .readers-list a:hover img { opacity: .6; margin-left: 0 } .readers-list a:hover em { color: #EE8B17; font: bold 12px/36px microsoft yahei } .readers-list a:hover strong { color: #EE8B17; right: 150px; top: 0; text-align: center; border-right: #ccc 1px solid; height: 44px; line-height: 40px } .readers-list { line-height: 18px; text-align: left; _zoom: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; -o-text-overflow: ellipsis; } |
4.新建一个页面,模板选择readerwall.php,内容不填,标题填“读者墙”,然后把页面添加到菜单中即可。
搞定!