mirror of
https://github.com/WordPress/WordPress.git
synced 2025-02-27 01:38:35 +00:00
Add comment_count to the posts table. Props donncha. fixes #1860
git-svn-id: http://svn.automattic.com/wordpress/trunk@3104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
005dce9352
commit
25b644e8ce
@ -56,8 +56,7 @@ case 'delete-comment' :
|
|||||||
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
|
if ( !current_user_can('edit_post', $comment->comment_post_ID) )
|
||||||
die('-1');
|
die('-1');
|
||||||
|
|
||||||
if ( wp_set_comment_status($comment->comment_ID, "delete") ) {
|
if ( wp_delete_comment($comment->comment_ID) ) {
|
||||||
do_action('delete_comment', $comment->comment_ID);
|
|
||||||
die('1');
|
die('1');
|
||||||
} else {
|
} else {
|
||||||
die('0');
|
die('0');
|
||||||
|
@ -30,7 +30,7 @@ function upgrade_all() {
|
|||||||
upgrade_130();
|
upgrade_130();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $wp_current_db_version < 3092 )
|
if ( $wp_current_db_version < 3104 )
|
||||||
upgrade_160();
|
upgrade_160();
|
||||||
|
|
||||||
save_mod_rewrite_rules();
|
save_mod_rewrite_rules();
|
||||||
@ -301,6 +301,14 @@ function upgrade_160() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// populate comment_count field of posts table
|
||||||
|
$comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments GROUP BY comment_post_ID" );
|
||||||
|
if( is_array( $comments ) ) {
|
||||||
|
foreach ($comments as $comment) {
|
||||||
|
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = $comment->c WHERE ID = '$comment->comment_post_ID}'" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Some alpha versions used a post status of object instead of attachment and put
|
// Some alpha versions used a post status of object instead of attachment and put
|
||||||
// the mime type in post_type instead of post_mime_type.
|
// the mime type in post_type instead of post_mime_type.
|
||||||
if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
|
if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
|
||||||
|
@ -121,6 +121,7 @@ CREATE TABLE $wpdb->posts (
|
|||||||
menu_order int(11) NOT NULL default '0',
|
menu_order int(11) NOT NULL default '0',
|
||||||
post_type varchar(100) NOT NULL,
|
post_type varchar(100) NOT NULL,
|
||||||
post_mime_type varchar(100) NOT NULL,
|
post_mime_type varchar(100) NOT NULL,
|
||||||
|
comment_count bigint(20) NOT NULL default '0',
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
KEY post_name (post_name)
|
KEY post_name (post_name)
|
||||||
);
|
);
|
||||||
|
@ -81,7 +81,12 @@ function wp_insert_comment($commentdata) {
|
|||||||
('$comment_post_ID', '$comment_author', '$comment_author_email', '$comment_author_url', '$comment_author_IP', '$comment_date', '$comment_date_gmt', '$comment_content', '$comment_approved', '$comment_agent', '$comment_type', '$comment_parent', '$user_id')
|
('$comment_post_ID', '$comment_author', '$comment_author_email', '$comment_author_url', '$comment_author_IP', '$comment_date', '$comment_date_gmt', '$comment_content', '$comment_approved', '$comment_agent', '$comment_type', '$comment_parent', '$user_id')
|
||||||
");
|
");
|
||||||
|
|
||||||
return $wpdb->insert_id;
|
$id = $wpdb->insert_id;
|
||||||
|
|
||||||
|
if ( $comment_approved == 1)
|
||||||
|
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = comment_count + 1 WHERE ID = '$comment_post_ID'" );
|
||||||
|
|
||||||
|
return $id;
|
||||||
}
|
}
|
||||||
|
|
||||||
function wp_filter_comment($commentdata) {
|
function wp_filter_comment($commentdata) {
|
||||||
@ -176,11 +181,32 @@ function wp_update_comment($commentarr) {
|
|||||||
|
|
||||||
$rval = $wpdb->rows_affected;
|
$rval = $wpdb->rows_affected;
|
||||||
|
|
||||||
|
$c = $wpdb->get_row( "SELECT count(*) as c FROM {$wpdb->comments} WHERE comment_post_ID = '$comment_post_ID' AND comment_approved = '1'" );
|
||||||
|
if( is_object( $c ) )
|
||||||
|
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = '$c->c' WHERE ID = '$comment_post_ID'" );
|
||||||
|
|
||||||
do_action('edit_comment', $comment_ID);
|
do_action('edit_comment', $comment_ID);
|
||||||
|
|
||||||
return $rval;
|
return $rval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wp_delete_comment($comment_id) {
|
||||||
|
global $wpdb;
|
||||||
|
do_action('delete_comment', $comment_id);
|
||||||
|
|
||||||
|
$comment = get_comment($comment_id);
|
||||||
|
|
||||||
|
if ( ! $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_ID='$comment_id' LIMIT 1") )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$post_id = $comment->comment_post_ID;
|
||||||
|
if ( $post_id )
|
||||||
|
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = comment_count - 1 WHERE ID = '$post_id'" );
|
||||||
|
|
||||||
|
do_action('wp_set_comment_status', $comment_id, 'delete');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
function clean_url( $url ) {
|
function clean_url( $url ) {
|
||||||
if ('' == $url) return $url;
|
if ('' == $url) return $url;
|
||||||
$url = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $url);
|
$url = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $url);
|
||||||
@ -198,7 +224,7 @@ function get_comments_number( $post_id = 0 ) {
|
|||||||
$post_id = $id;
|
$post_id = $id;
|
||||||
|
|
||||||
if ( !isset($comment_count_cache[$post_id]) )
|
if ( !isset($comment_count_cache[$post_id]) )
|
||||||
$comment_count_cache[$post_id] = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_post_ID = '$post_id' AND comment_approved = '1'");
|
$comment_count_cache[$id] = $wpdb->get_var("SELECT comment_count FROM $wpdb->posts WHERE ID = '$post_id'");
|
||||||
|
|
||||||
return apply_filters('get_comments_number', $comment_count_cache[$post_id]);
|
return apply_filters('get_comments_number', $comment_count_cache[$post_id]);
|
||||||
}
|
}
|
||||||
@ -742,7 +768,7 @@ function wp_set_comment_status($comment_id, $comment_status) {
|
|||||||
$query = "UPDATE $wpdb->comments SET comment_approved='spam' WHERE comment_ID='$comment_id' LIMIT 1";
|
$query = "UPDATE $wpdb->comments SET comment_approved='spam' WHERE comment_ID='$comment_id' LIMIT 1";
|
||||||
break;
|
break;
|
||||||
case 'delete':
|
case 'delete':
|
||||||
$query = "DELETE FROM $wpdb->comments WHERE comment_ID='$comment_id' LIMIT 1";
|
return wp_delete_comment($comment_id);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@ -750,6 +776,12 @@ function wp_set_comment_status($comment_id, $comment_status) {
|
|||||||
|
|
||||||
if ($wpdb->query($query)) {
|
if ($wpdb->query($query)) {
|
||||||
do_action('wp_set_comment_status', $comment_id, $comment_status);
|
do_action('wp_set_comment_status', $comment_id, $comment_status);
|
||||||
|
|
||||||
|
$comment = get_comment($comment_id);
|
||||||
|
$comment_post_ID = $comment->comment_post_ID;
|
||||||
|
$c = $wpdb->get_row( "SELECT count(*) as c FROM {$wpdb->comments} WHERE comment_post_ID = '$comment_post_ID' AND comment_approved = '1'" );
|
||||||
|
if( is_object( $c ) )
|
||||||
|
$wpdb->query( "UPDATE $wpdb->posts SET comment_count = '$c->c' WHERE ID = '$comment_post_ID'" );
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -1306,11 +1306,7 @@ function update_post_caches(&$posts) {
|
|||||||
update_post_category_cache($post_id_list);
|
update_post_category_cache($post_id_list);
|
||||||
|
|
||||||
// Do the same for comment numbers
|
// Do the same for comment numbers
|
||||||
$comment_counts = $wpdb->get_results("SELECT comment_post_ID, COUNT( comment_ID ) AS ccount
|
$comment_counts = $wpdb->get_results( "SELECT ID as comment_post_ID, comment_count as ccount FROM $wpdb->posts WHERE ID in ($post_id_list)" );
|
||||||
FROM $wpdb->comments
|
|
||||||
WHERE comment_post_ID IN ($post_id_list)
|
|
||||||
AND comment_approved = '1'
|
|
||||||
GROUP BY comment_post_ID");
|
|
||||||
|
|
||||||
if ( $comment_counts ) {
|
if ( $comment_counts ) {
|
||||||
foreach ($comment_counts as $comment_count) {
|
foreach ($comment_counts as $comment_count) {
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
// This just holds the version number, in a separate file so we can bump it without cluttering the SVN
|
// This just holds the version number, in a separate file so we can bump it without cluttering the SVN
|
||||||
|
|
||||||
$wp_version = '1.6-ALPHA-2-still-dont-use';
|
$wp_version = '1.6-ALPHA-2-still-dont-use';
|
||||||
$wp_db_version = 3092;
|
$wp_db_version = 3104;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user