首页 > 沙子, 编程相关 > WordPress解决评论错乱的问题

WordPress解决评论错乱的问题

2011年12月19日 sigma 发表评论 阅读评论

今天,想在blog的每篇文章后面添加随机文章展示,增加PV,可是,发现加上之后,评论出现了问题,展示的评论是随机出现的,并且随机对应某一篇文章的评论。

由于我对其他代码没有改动,分析了下,肯定是因为新改的代码导致的,新改的代码如下:

    <ul>
      <?php
        $posts = get_posts('numberposts=7&orderby=rand');
        foreach($posts as $post) {
          setup_postdata($post);
          echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        }
        $post = $posts[0];
      ?>
    </ul>

仔细看了下代码,发现,这里面会把$post变量改变,而后面的评论代码取评论的时候,是根据$post来取评论的,因此会导致评论错乱,出现随机文章的评论。那为什么别人用这段代码展示随机文章不会出现评论错乱呢,那是因为别人是放在侧边栏的,评论(comments.php)执行在侧边栏(sidebar.php)之前,这时候改变$post的值并不会改变评论。

原因找出来了,因此,只需要避免改变$post值即可,改后的代码如下:

    <ul>
      <?php
        $random_posts = get_posts('numberposts=7&orderby=rand');
        foreach($random_posts as $random_post) {
          echo '<li><a href="' . get_permalink($random_post->ID) . '">' . get_the_title($random_post->ID) . '</a></li>';
        }
      ?>
    </ul>

本文作者: Sigma    在新浪微博关注SigmaSigmaWeibo    RSS订阅本博客
本文链接: http://mblog.sigma.me/2011/12/19/wordpress-comment-wrong-problem.html
本博客采用知识共享署名—非商业性-禁止演绎使用3.0协议进行许可,转载请保留作者和原文链接。

分类: 沙子, 编程相关 标签: , ,

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量