bbp_update_topic_voice_count( int $topic_id )
Adjust the total voice count of a topic
Description
Parameters
- $topic_id
-
(Optional) Topic id to update
Return
(int) Members count
Source
File: bp-forums/topics/functions.php
function bbp_update_topic_voice_count( $topic_id = 0 ) { global $wpdb; // If it's a reply, then get the parent (topic id) if ( bbp_is_reply( $topic_id ) ) { $topic_id = bbp_get_reply_topic_id( $topic_id ); } elseif ( bbp_is_topic( $topic_id ) ) { $topic_id = bbp_get_topic_id( $topic_id ); } else { return; } // Query the DB to get members in this topic $voices = $wpdb->get_col( $wpdb->prepare( "SELECT COUNT( DISTINCT post_author ) FROM {$wpdb->posts} WHERE ( post_parent = %d AND post_status = '%s' AND post_type = '%s' ) OR ( ID = %d AND post_type = '%s' );", $topic_id, bbp_get_public_status_id(), bbp_get_reply_post_type(), $topic_id, bbp_get_topic_post_type() ) ); // If there's an error, make sure we have at least have 1 voice $voices = ( empty( $voices ) || is_wp_error( $voices ) ) ? 1 : $voices[0]; // Update the voice count for this topic id update_post_meta( $topic_id, '_bbp_voice_count', (int) $voices ); return apply_filters( 'bbp_update_topic_voice_count', (int) $voices, $topic_id ); }
Changelog
Version | Description |
---|---|
bbPress (r2567) | 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.