bbp_admin_repair_user_topic_count()
Recount topics by the users
Description
Return
(array) An array of the status code and the message
Source
File: bp-forums/admin/tools.php
function bbp_admin_repair_user_topic_count() { global $wpdb; $statement = __( 'Counting the number of discussions each user has created… %s', 'buddyboss' ); $result = __( 'Failed!', 'buddyboss' ); $sql_select = "SELECT `post_author`, COUNT(DISTINCT `ID`) as `_count` FROM `{$wpdb->posts}` WHERE `post_type` = '" . bbp_get_topic_post_type() . "' AND `post_status` = '" . bbp_get_public_status_id() . "' GROUP BY `post_author`;"; $insert_rows = $wpdb->get_results( $sql_select ); if ( is_wp_error( $insert_rows ) ) return array( 1, sprintf( $statement, $result ) ); $key = $wpdb->prefix . '_bbp_topic_count'; $insert_values = array(); foreach ( $insert_rows as $insert_row ) $insert_values[] = "('{$insert_row->post_author}', '{$key}', '{$insert_row->_count}')"; if ( !count( $insert_values ) ) return array( 2, sprintf( $statement, $result ) ); $sql_delete = "DELETE FROM `{$wpdb->usermeta}` WHERE `meta_key` = '{$key}';"; if ( is_wp_error( $wpdb->query( $sql_delete ) ) ) return array( 3, sprintf( $statement, $result ) ); foreach ( array_chunk( $insert_values, 10000 ) as $chunk ) { $chunk = "\n" . implode( ",\n", $chunk ); $sql_insert = "INSERT INTO `{$wpdb->usermeta}` (`user_id`, `meta_key`, `meta_value`) VALUES $chunk;"; if ( is_wp_error( $wpdb->query( $sql_insert ) ) ) { return array( 4, sprintf( $statement, $result ) ); } } return array( 0, sprintf( $statement, __( 'Complete!', 'buddyboss' ) ) ); }
Changelog
Version | Description |
---|---|
bbPress (r3889) | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.