您的位置: 首页 / Experiences, PHP / WordPress 2.0.5 一处 Bug

WordPress 2.0.5 一处 Bug

Published at Dec 5, 12am / Keywords: ,

最近忙着 Blog 改版,做模版的时候出现了一个奇怪的问题,分析代码后发现原来是 WordPress 的一处小 Bug。这个 Bug 并不严重,不会造成什么安全问题,写一下具体现象和修补方法。

Bug 现象:模版中调用 comment_number() 和 get_comment_number() 函数时,如果指定了 $post_id,则无法返回正确的评论数。

相关代码及解决办法:问题出在 [wp-dir]/wp-includes/comment-functions.php 235行。get_comment_number() 函数使用了数据库查询缓存来提高运行效率,但将 $comment_count_cache[$post_id] 误写为 $comment_count_cache[$id],导致结果不正常,更正即可。

  1. <?php
  2. // $comment_count_cache[$id] = $wpdb->get_var("SELECT comment_count FROM $wpdb->posts WHERE ID = '$post_id'");
  3.  
  4. $comment_count_cache[$post_id] = $wpdb->get_var("SELECT comment_count FROM $wpdb->posts WHERE ID = '$post_id'");
  5. ?>

在 WordPress 2.0.5,LAMP 环境下测试通过。

btw: Wii 游戏手把已经可以在电脑上用了,不过看控制鼠标移动都那么费劲,可以遇见预见电脑离被 Wii 手把砸烂已经不远了,呵呵。

收藏和分享本文 17fav 收藏本文

发表您的观点或推荐本文 Loading...

3 Responses

  1. Dec 5, 8am / LINK / REPLY
    Gravatar

    可以遇见电脑离被 Wii 手把砸烂已经不远了,呵呵。
    可以预见电脑离被 Wii 手把砸烂已经不远了,呵呵。

  2. Dec 5, 3pm / LINK / REPLY
    Gravatar

    to kevin: 看的真仔细,改了,谢谢 :smile:

  3. Dec 6, 1pm / LINK / REPLY
    Gravatar

    真厉害。我改了,还学了下vim语言。
    要不然得按235下。呵呵。谢谢。

Now, It's your Turn!

BACK TO Article / Comments