Make WordPress Core


Ignore:
Timestamp:
04/19/2006 02:53:02 AM (20 years ago)
Author:
ryan
Message:

Remove comment_count_cache. fixes #2670

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/comment-template.php

    r3714 r3716  
    143143
    144144function get_comments_number( $post_id = 0 ) {
    145         global $wpdb, $comment_count_cache, $id;
     145        global $wpdb, $id;
    146146        $post_id = (int) $post_id;
    147147
     
    149149                $post_id = $id;
    150150
    151         // TODO: Remove SELECT.  Use get_post().
    152         if ( !isset($comment_count_cache[$post_id]) )
    153                 $comment_count_cache[$id] = $wpdb->get_var("SELECT comment_count FROM $wpdb->posts WHERE ID = '$post_id'");
    154 
    155         return apply_filters('get_comments_number', $comment_count_cache[$post_id]);
     151        $post = get_post($post_id);
     152        if ( ! isset($post->comment_count) )
     153                $count = 0;
     154        else
     155                $count = $post->comment_count;
     156
     157        return apply_filters('get_comments_number', $count);
    156158}
    157159
     
    324326function comments_popup_link($zero='No Comments', $one='1 Comment', $more='% Comments', $CSSclass='', $none='Comments Off') {
    325327        global $id, $wpcommentspopupfile, $wpcommentsjavascript, $post, $wpdb;
    326         global $comment_count_cache;
    327 
    328         if (! is_single() && ! is_page()) {
    329         // TODO: Use API instead of SELECT
    330         if ( !isset($comment_count_cache[$id]) )
    331                 $comment_count_cache[$id] = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_post_ID = $id AND comment_approved = '1';");
    332 
    333         $number = $comment_count_cache[$id];
    334 
    335         if (0 == $number && 'closed' == $post->comment_status && 'closed' == $post->ping_status) {
     328
     329        if ( is_single() || is_page() )
     330                return;
     331
     332        $number = get_comments_number($id);
     333
     334        if ( 0 == $number && 'closed' == $post->comment_status && 'closed' == $post->ping_status ) {
    336335                echo $none;
    337336                return;
    338         } else {
    339                 if (!empty($post->post_password)) { // if there's a password
    340                         if ($_COOKIE['wp-postpass_'.COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
    341                                 echo(__('Enter your password to view comments'));
    342                                 return;
    343                         }
    344                 }
    345                 echo '<a href="';
    346                 if ($wpcommentsjavascript) {
    347                         if ( empty($wpcommentspopupfile) )
    348                                 $home = get_settings('home');
    349                         else
    350                                 $home = get_settings('siteurl');
    351                         echo $home . '/' . $wpcommentspopupfile.'?comments_popup='.$id;
    352                         echo '" onclick="wpopen(this.href); return false"';
    353                 } else { // if comments_popup_script() is not in the template, display simple comment link
    354                         if ( 0 == $number )
    355                                 echo get_permalink() . '#respond';
    356                         else
    357                                 comments_link();
    358                         echo '"';
    359                 }
    360                 if (!empty($CSSclass)) {
    361                         echo ' class="'.$CSSclass.'"';
    362                 }
    363                 echo ' title="' . sprintf( __('Comment on %s'), $post->post_title ) .'">';
    364                 comments_number($zero, $one, $more, $number);
    365                 echo '</a>';
    366         }
    367         }
     337        }
     338
     339        if ( !empty($post->post_password) ) { // if there's a password
     340                if ($_COOKIE['wp-postpass_'.COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
     341                        echo(__('Enter your password to view comments'));
     342                        return;
     343                }
     344        }
     345
     346        echo '<a href="';
     347        if ($wpcommentsjavascript) {
     348                if ( empty($wpcommentspopupfile) )
     349                        $home = get_settings('home');
     350                else
     351                        $home = get_settings('siteurl');
     352                echo $home . '/' . $wpcommentspopupfile.'?comments_popup='.$id;
     353                echo '" onclick="wpopen(this.href); return false"';
     354        } else { // if comments_popup_script() is not in the template, display simple comment link
     355                if ( 0 == $number )
     356                        echo get_permalink() . '#respond';
     357                else
     358                        comments_link();
     359                echo '"';
     360        }
     361
     362        if (!empty($CSSclass)) {
     363                echo ' class="'.$CSSclass.'"';
     364        }
     365        echo ' title="' . sprintf( __('Comment on %s'), $post->post_title ) .'">';
     366        comments_number($zero, $one, $more, $number);
     367        echo '</a>';
    368368}
    369369
Note: See TracChangeset for help on using the changeset viewer.