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

日期: 标签:WordPress教程
如需帮忙改代码,或者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

业余编程爱好者。

42 条留言

点此留言
  1. 有点蓝 有点蓝

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

    • Ludou

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

      • 有点蓝 有点蓝

        @Ludou 你激动了么?

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

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

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

        • Ludou

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

        • Ludou

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

          • 有点蓝 有点蓝

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

          • wiikoko wiikoko

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

  2. 有点蓝 有点蓝

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

  3. sayram

    文章列表 的长度 如何调?

    • 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就是标题的长度,可以自行修改!

  4. 火车时刻表查询 火车时刻表查询

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

  5. Blues Blues

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

    • Ludou

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

  6. 途途 途途

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

    • Ludou

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

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

      • 途途 途途

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

        • Ludou

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

          • 途途 途途

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

          • Ludou

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

          • 途途 途途

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

  7. WordPress啦 WordPress啦

    有相关的插件可以用吧

  8. 小杰博客 小杰博客

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

  9. Ibb

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

  10. 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样式你再自己定义!

    • Kelvin

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

      • 露兜

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

    • Kelvin

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

      • 露兜

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

  11. 望着北向南走 望着北向南走

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

  12. 鼬

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

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

  13. 鼬

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

    • Ludou

      @ 后台 – 外观 – 小工具

    • Ludou

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

    • Ludou

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

  14. 鼬

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

    • Ludou

      @ 本文代码不支持此功能

  15. candoudou candoudou

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

  16. 计算器在线 计算器在线

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

  17. 探路侠 探路侠

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

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

发表留言