分文网

WordPress免插件读者墙之页面版

Posted by admin on 六月 30th, 2010

关于读者墙这个话题已经折腾过好几回了,像之前的WordPress插件:wp- reader-wall读者墙是利用插件实现在文章或者页面中添加读者墙的效果。后来为了能在侧边栏里也能显示,所以后来又折腾了WordPress非插件读者墙

由于前段时间把wordpress从2.9.2升级到了3.0,而wp-reader-wall插件也随之失效。咨询了插件作者也并有得到回复,而且发现多数童鞋都有这样的问题,本想放弃使用此项功能的,不过昨天林西老九 等童鞋建议还是把这个墙筑起来比较好。正好看到快乐啦-Happyla的WordPress升级3.0后里正好涉及到这个问题,二话没说,赶紧折腾。

折腾发现,首先要明确思路:

首先用页面版读者墙(和我以前的WordPress 非插件读者墙类似)代码建立一个读者墙模板,然后后台建立页面选择commentswall模板即可。

虽然看上去很简单,但我之前都没有注意到在编辑文章或者页面的时候还可以选择不同的模板,一般都是默认的模板。明确思路后就简单了,因为我对模板代码什么的不是很熟悉,所以直接利用的是主题自带的page.php也就是页面模板文件。打开page.php文件另存为commentswall.php文件,在最前面加上下面的代码:

<?php
/*
Template Name: commentswall
*/
?>

表示要用调用commentswall模板,然后再在文件里面适当的位置添加非插件版读者墙的代码:

<!-- start 读者墙 -->
<?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 1 MONTH ) AND user_id='0' AND comment_author_email != '你自己的email地址' AND post_password='' AND comment_approved='1' AND comment_type='') AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 40";
    $wall = $wpdb->get_results($query);
    foreach ($wall as $comment)
    {
        if( $comment->comment_author_url )
        $url = $comment->comment_author_url;
        else $url="#";
        $tmp = "<a href='".$url."' title='".$comment->comment_author." (".$comment->cnt.")'>".get_avatar($comment->comment_author_email, 40)."</a>";
        $output .= $tmp;
     }
    $output = "<div id='readerswall'><h2>Most Active Friends</h2>".$output."</div>";
    echo $output ;
?>
<!-- end 读者墙 -->

注意修改其中你的“email地址”以及你需要显示的头像大小及数目。先保存好此commentswall.php文件上传到你所用的主题目录下,最后在后台新建一个页面,内容自定,最后在右侧选择使用的模板文件为commentswall即可。到此,wordpress免插件读者墙之页面版就完美实现了,效果还是看我的给我留言

熟悉代码的童鞋还可以自己定义commentswall.php文件,不一定完全引用page.php里的内容,我这样做只是为了偷懒而已。如果还有什么问题可以参考朵夫的《WordPress升级3.0后》以及荒野无灯的《WordPress免插件版读者墙》

相关文章:

  1. 有时间了也做一个

  2. 好像ZB也能实现 。有时间扑腾理

  3. 我是说折腾下。。囧。

  4. 过来围观一下!

  5. 一样的意思

  6. 这个好像有人做过插件

  7. 呵呵 就是因为插件失效 所以要另寻方法

  8. 呃,还没使用过此功能

  9. 最近看到大家都搞读者墙之页面版,改天我也来试试,呵呵……

  10. 为什么要升级到3.0呢,那个群建功能不是很多人用的到的。

  11. 嘿嘿,好啊,我去看看,动作够快的嘛

  12. 页面的代码差不多,主要是做个页面模板

  13. 不错不错,来顶一个,等奶牛下次打算换主题的时候就用你的代码,哈哈~~~ :mrgreen:

  14. 使用wordpress快一年了,今天才知道读者墙 :?: 太落伍了。

  15. 恩。。。这个很有用

  16. 我还是暂时不升级到3.0
    两天没来,水王的位置被人抢了。

  17. 折腾有理啊。呵呵.. :lol:

  18. 呵呵,你也挺爱折腾的呀 :grin:

  19. 呵呵,有折腾才会有成就

  20. :?: 大灰,你的口水已经喷得够多啦。。。
    reader-wall, 暂时用不到的说 :mrgreen:

  21. 呵呵 这个不错

  22. 我觉得我也有必要搞这个东东了

  23. 正好正好,我正在K插件,收藏,以后会用到的,等我把all-in-one SEO去掉就是改这个!

  24. 最近太忙,才过来看,不好意思啊。

  25. 是的 主要是这个思路值得学习 至少我以前都没看到

  26. 那个插件早就不用了俄 好像米什么做yon

  27. 前几天也看amang的这个咯。。。大家都喜欢读者强哈 :twisted: :twisted:

  28. 每个人都应该有一面墙 :twisted:

  29. 呵呵,搞一个好啊。读者墙部分的代码,调用谁的都可以。 :oops:

  30. 没有那个心力去折腾了

  31. 改天我也弄一个

  32. 那个参数怎么填写的?

  33. 我升级时也遇到了这事儿 呵呵 现在已经有3.0版的读者墙了 已经装上了

  34. 什么参数?

  35. 我需要显示所有读者的读者墙
    可是这段代码似乎不是全部显示的~

  36. 那你只要控制显示个数就可以了啊 比如你设置10000 我想应该可以满足了吧 如果不行 再加个0 呵呵
    “AS tempcmt GROUP BY comment_author_email ORDER BY cnt DESC LIMIT 66″例如我的设置为66刚好显示6行 每行11个

  37. 没有注意我什么时候成为水王了。

  38. 唉 还是用的插件。。。。。。

  39. 说一下..你页面广告好多啊…..赚到没?顺便帮你点了一些~

  40. [...] [...]

  41. [...] [...]

  42. 技术流是王道啊

  43. 已经折腾上了这功能

  44. 这个怎么让它在新窗口中打开读者墙里的网址啊?

  45. 我想只显示:最近三个月,留言超过三条的读者,怎么实现呀? :mrgreen:

  46. 貌似我的好像就是在新窗口打开的 你有没有设置过external 这个标签
    如果没有 可以参考我的一篇文章 利用jQuery实现链接在新窗口打开

  47. 试着把 “INTERVAL 1 MONTH”中的1换成3看看
    至于留言超过3条显示 你可以考虑控制总显示数量 这样一来留言较少的便不会显示了

  48. 我还在研究。悲哀。还未成功 :arrow:

  49. 不错 在用了 谢谢分享

  50. 博主,本篇文章,代码部分,在你这里显示错位了,侧边栏都是这篇文章的代码,貌似你的single.php文件有问题

  51. 学习了、我去试试!

  52. 博客人气很旺啊!可惜我对代码啥的一窍不通,现在没有插件能实现了吗?

访客留言