WordPress显示最近评论的文章列表

日期: 标签:WordPress教程 42 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

     这个功能跟显示最近评论不一样,这里显示的是一个文章标题列表(类似本站侧边栏的"随机推荐"栏目),只是排列顺序是按照文章的最近一条评论的时间进行排序,最新评论的那篇文章排在顶部,有点类似论坛的顶贴效果,这样方便访客进行选择性阅读,最终效果类似:

最近评论文章效果

实现代码:

<?php
/**
 * 名称:WordPress显示最近评论的文章列表
 * 作者:露兜
 * 博客:https://www.ludou.org/
 * 最后修改:2010年12月06日
 */

$pop = $wpdb->get_results("SELECT DISTINCT comment_post_ID
FROM $wpdb->comments
WHERE comment_approved = 1
AND comment_post_ID NOT IN
(
SELECT ID FROM $wpdb->posts
WHERE post_type != 'post'
OR post_status != 'publish'
OR post_password != ''
)
ORDER BY comment_date_gmt DESC
LIMIT 10"); ?>
<ul>
<?php foreach($pop as $post) : ?>
<li><a href="<?php echo get_permalink($post->comment_post_ID); ?>"><?php echo get_the_title($post->comment_post_ID); ?></a></li>
<?php endforeach; ?>
</ul>

     将以上代码放到主题文件的sidebar.php、single.php等文件的适当位置,即可实现相应的效果。以上代码将最多列出10篇文章,如果你想显示更多的文章那就将代码第20行中10改一下。以上PHP代码生成的HTML代码为一个无序列表<ul>...</ul>,使用过程注意与你的主题吻合。

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-post-list-orderby-comment-time.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

42 条留言

点此留言
  1. 有点蓝

    这个好,这个比那个应用在index页的要安全多了。我的边栏正好却这么一个东东顶替最新发布呢。

  2. Ludou

    @有点蓝 是谁跟你说那个应用在index页的不安全呢?你有什么根据说它不安全呢?

  3. 有点蓝

    @Ludou 你激动了么?

    我说的不安全是指:
    访客可能对这种博客形式不适应,影响博客浏览体验,导致来访减少。

    这对一个关心访客体验的博主来说算不算不安全呢?

    如果你说不算,那我只好认为我表述不清,或者你没有幽默感了。

  4. Ludou

    @有点蓝 看来我们对"安全"的理解不一样。

  5. Ludou

    @有点蓝 刚刚看过《心理月刊》一期专栏,不同人看问题的角度不一样,以及沟通过程中的内容缺失,都会导致分歧和不愉快,这也验证了这一点。如果我上面的回复导致你的不愉快,我深感抱歉!

  6. 有点蓝

    @Ludou 是我要道歉才是。你的辛勤劳动成功被我说成“不安全”,肯定是不舒服啊,也怪我,说话不清不楚的,直接说“怕影响浏览体验”就好了啊,呵呵。

  7. wiikoko

    @有点蓝 都是真男人,能用于承担自己的错误。

  8. 有点蓝

    用了第二段代码,发现列表里会出现图片的地址呢?

  9. Ludou

    @有点蓝 以上代码已更改!

  10. 有点蓝

    @Ludou 这次正常了,多谢。

  11. sayram

    文章列表 的长度 如何调?

  12. Ludou

    @sayram 如果你指的是显示的文章数量,文中已经说明了。
    如果你指的是文章标题的长度,可以将代码16行中的:
    <?php echo get_the_title($post->comment_post_ID); ?>

    改成:
    <?php echo mb_strimwidth(get_the_title($post->comment_post_ID),0,32,'..'); ?>

    32就是标题的长度,可以自行修改!

  13. 火车时刻表查询

    太高明,又学了一招,感谢。

  14. Blues

    难道是从上次那场辩论总结出的方法?嘿嘿

  15. Ludou

    @Blues 这个只是显示一个文章标题列表,并不控制存档文章列表顺序,当然也可以将这个方法应用于存档页,替换WordPress的Loop。

  16. 途途

    这个很实用,感谢露兜博主分享~
    能请教博主一个问题?
    我的网站头部banner图片调用问题
    代码:<img src="<?php bloginfo('template_directory'); ?>/images/banner.jpg" width="780" height="90" alt="" />
    我上传了banner.jpg,尺寸也是780*90
    为啥就不显示呢????
    请帮忙:)

  17. Ludou

    @途途 那你在浏览器中输入图片的完整路径
    http://…/images/banner.jpg

    看看有没有显示!图片应该上传到当前主题目录下的images文件夹里。

  18. 途途

    @Ludou 很奇怪噢
    我就上传到当前主题下images文件夹里,在浏览器访问,那个logo.jpg能显示图片,访问banner.jpg就是显示不了,是否因为banner图片太大还是?

  19. Ludou

    @途途 banner.jpg不是可以显示吗?灰色方框!

  20. 途途

    @Ludou 我这里是IE8,图片显示不了,老显示灰色的一张(不是原图),难道要修改CSS?

  21. Ludou

    @途途 这跟css无关,你重新制作图片,再换其他文件名试试。

  22. 途途

    @Ludou 恩,感谢露兜博主指导
    我刚刚测试直接改成logo.jpg是能显示的,所以我就怀疑很有可能是图片的问题!
    再次感谢~

  23. WordPress啦

    有相关的插件可以用吧

  24. 小杰博客

    又是一个比较实用的功能哦,这个出现最近被“顶”过的文章列表哦,不错的功能

  25. Ibb

    我没看明白这个。
    按上面的代码只显示留言的文章标题。如何也显示留言的内容啊?

  26. Ludou

    第9行代码改成:
    $pop = $wpdb->get_results("SELECT DISTINCT comment_post_ID, comment_content

    第23行代码改成:
    <li>
    <div class="new_comment_title">
    <a href="<?php echo get_permalink($post->comment_post_ID); ?>"><?php echo get_the_title($post->comment_post_ID); ?></a>
    </div>
    <div class="new_comment_content">
    <p><?php echo $post->comment_content; ?></p>
    </div>
    </li>

    具体的css样式你再自己定义!

  27. Kelvin

    @Ludou Hi,
    采用这个方法调用评论内容很OK,但是怎样控制评论字数

  28. 露兜

    @Kelvin get_the_title($post->comment_post_ID)
    这个是文章标题,自己上网搜索php控制文章字数的代码,对这个标题进行字数控制。

  29. Kelvin

    @Ludou 不掉用作者回复的评论,只调用评论者内容

  30. 露兜

    @Kelvin 18行改成
    ) AND comment_author != '作者昵称'

  31. 望着北向南走

    很牛的博主啊。我啥都不懂。。。

  32. 鼬

    Ludou,我想问怎么把你这个最近评论的文章列表改成"谁谁谁发表在什么什么文章"

    效果和月夜博客的近期评论一样,这样可以知道谁在哪篇文章写了评论,谢谢。
    月夜博客例子 :http://www.yueye.org/

  33. 鼬

    月夜博客的近期评论中的谁谁谁是会添加上网站链接的,这样会影响跳出率,如果只显示谁谁谁的文字,没有网站链接,这样更好,呵呵。

  34. Ludou

    @ 后台 – 外观 – 小工具

  35. Ludou

    @ 边栏的东西,一般没人点。具体你用用Google Analytics或百度统计的事件统计功能,看看分析报告就知道了。

  36. Ludou

    @ 另见我之前写的文章:https://www.ludou.org/simple-is-useful.html

  37. 鼬

    Ludou,我想这个文章列表不包含某个分类,那我应该把这个 &cat=-3 添加到上面代码的哪个位置,请指教,谢谢。

  38. Ludou

    @ 本文代码不支持此功能

  39. candoudou

    右侧最近发表的文章是哪个文件?

  40. Ludou

    @candoudou sidebar.php

  41. 计算器在线

    这个很实用。比最新文章调用更好了。

  42. 探路侠

    第9行代码改成:
    $pop = $wpdb->get_results("SELECT DISTINCT comment_post_ID, comment_content

    老大,这样调用的时候有个问题,如果同一篇文章很短时间内多次评论,会多次出现同一个文章的标题,有没有优化方案啊?

发表留言