Make WordPress Core


Ignore:
Timestamp:
11/16/2005 06:29:36 AM (21 years ago)
Author:
ryan
Message:

Add comment_count to the posts table. Props donncha. fixes #1860

File:
1 edited

Legend:

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

    r3078 r3104  
    8282        ");
    8383
    84         return $wpdb->insert_id;
     84        $id = $wpdb->insert_id;
     85
     86        if ( $comment_approved == 1)
     87                $wpdb->query( "UPDATE $wpdb->posts SET comment_count = comment_count + 1 WHERE ID = '$comment_post_ID'" );
     88       
     89        return $id;
    8590}
    8691
     
    177182        $rval = $wpdb->rows_affected;
    178183
     184        $c = $wpdb->get_row( "SELECT count(*) as c FROM {$wpdb->comments} WHERE comment_post_ID = '$comment_post_ID' AND comment_approved = '1'" );
     185        if( is_object( $c ) )
     186                $wpdb->query( "UPDATE $wpdb->posts SET comment_count = '$c->c' WHERE ID = '$comment_post_ID'" );
     187
    179188        do_action('edit_comment', $comment_ID);
    180189
    181         return $rval;   
     190        return $rval;
     191}
     192
     193function wp_delete_comment($comment_id) {
     194        global $wpdb;
     195        do_action('delete_comment', $comment_id);
     196
     197        $comment = get_comment($comment_id);
     198
     199        if ( ! $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_ID='$comment_id' LIMIT 1") )
     200                return false;
     201
     202        $post_id = $comment->comment_post_ID;
     203        if ( $post_id )
     204                $wpdb->query( "UPDATE $wpdb->posts SET comment_count = comment_count - 1 WHERE ID = '$post_id'" );
     205
     206        do_action('wp_set_comment_status', $comment_id, 'delete');
     207        return true;
    182208}
    183209
     
    199225
    200226        if ( !isset($comment_count_cache[$post_id]) )
    201                 $comment_count_cache[$post_id] =  $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = '$post_id' AND comment_approved = '1'");
     227                $comment_count_cache[$id] = $wpdb->get_var("SELECT comment_count FROM $wpdb->posts WHERE ID = '$post_id'");
    202228       
    203229        return apply_filters('get_comments_number', $comment_count_cache[$post_id]);
     
    743769                break;
    744770                case 'delete':
    745                         $query = "DELETE FROM $wpdb->comments WHERE comment_ID='$comment_id' LIMIT 1";
     771                        return wp_delete_comment($comment_id);
    746772                break;
    747773                default:
     
    751777    if ($wpdb->query($query)) {
    752778                do_action('wp_set_comment_status', $comment_id, $comment_status);
     779               
     780                $comment = get_comment($comment_id);
     781                $comment_post_ID = $comment->comment_post_ID;
     782                $c = $wpdb->get_row( "SELECT count(*) as c FROM {$wpdb->comments} WHERE comment_post_ID = '$comment_post_ID' AND comment_approved = '1'" );
     783                if( is_object( $c ) )
     784                        $wpdb->query( "UPDATE $wpdb->posts SET comment_count = '$c->c' WHERE ID = '$comment_post_ID'" );
    753785                return true;
    754786    } else {
Note: See TracChangeset for help on using the changeset viewer.