Make WordPress Core


Ignore:
Timestamp:
11/16/2005 06:29:36 AM (20 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.