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

2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
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

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.