bbp_get_statistics( mixed $args = '' )
Get the forum statistics
Description
Parameters
- $args
-
(Optional) The function supports these arguments (all default to true): - count_users: Count users? - count_forums: Count forums? - count_topics: Count topics? If set to false, private, spammed and trashed topics are also not counted. - count_private_topics: Count private topics? (only counted if the current user has read_private_topics cap) - count_spammed_topics: Count spammed topics? (only counted if the current user has edit_others_topics cap) - count_trashed_topics: Count trashed topics? (only counted if the current user has view_trash cap) - count_replies: Count replies? If set to false, private, spammed and trashed replies are also not counted. - count_private_replies: Count private replies? (only counted if the current user has read_private_replies cap) - count_spammed_replies: Count spammed replies? (only counted if the current user has edit_others_replies cap) - count_trashed_replies: Count trashed replies? (only counted if the current user has view_trash cap) - count_tags: Count tags? If set to false, empty tags are also not counted - count_empty_tags: Count empty tags?
Default value: ''
Return
(object) Walked forum tree
Source
File: bp-forums/common/functions.php
function bbp_get_statistics( $args = '' ) { // Parse arguments against default values $r = bbp_parse_args( $args, array( 'count_users' => true, 'count_forums' => true, 'count_topics' => true, 'count_private_topics' => true, 'count_spammed_topics' => true, 'count_trashed_topics' => true, 'count_replies' => true, 'count_private_replies' => true, 'count_spammed_replies' => true, 'count_trashed_replies' => true, 'count_tags' => true, 'count_empty_tags' => true ), 'get_statistics' ); // Defaults $user_count = 0; $forum_count = 0; $topic_count = 0; $topic_count_hidden = 0; $reply_count = 0; $reply_count_hidden = 0; $topic_tag_count = 0; $empty_topic_tag_count = 0; // Users if ( !empty( $r['count_users'] ) ) { $user_count = bbp_get_total_users(); } // Forums if ( !empty( $r['count_forums'] ) ) { $forum_count = wp_count_posts( bbp_get_forum_post_type() )->publish; } // Post statuses $private = bbp_get_private_status_id(); $spam = bbp_get_spam_status_id(); $trash = bbp_get_trash_status_id(); $closed = bbp_get_closed_status_id(); // Topics if ( !empty( $r['count_topics'] ) ) { $all_topics = wp_count_posts( bbp_get_topic_post_type() ); // Published (publish + closed) $topic_count = $all_topics->publish + $all_topics->{$closed}; if ( current_user_can( 'read_private_topics' ) || current_user_can( 'edit_others_topics' ) || current_user_can( 'view_trash' ) ) { // Declare empty arrays $topics = $topic_titles = array(); // Private $topics['private'] = ( !empty( $r['count_private_topics'] ) && current_user_can( 'read_private_topics' ) ) ? (int) $all_topics->{$private} : 0; // Spam $topics['spammed'] = ( !empty( $r['count_spammed_topics'] ) && current_user_can( 'edit_others_topics' ) ) ? (int) $all_topics->{$spam} : 0; // Trash $topics['trashed'] = ( !empty( $r['count_trashed_topics'] ) && current_user_can( 'view_trash' ) ) ? (int) $all_topics->{$trash} : 0; // Total hidden (private + spam + trash) $topic_count_hidden = $topics['private'] + $topics['spammed'] + $topics['trashed']; // Generate the hidden topic count's title attribute $topic_titles[] = !empty( $topics['private'] ) ? sprintf( __( 'Private: %s', 'buddyboss' ), number_format_i18n( $topics['private'] ) ) : ''; $topic_titles[] = !empty( $topics['spammed'] ) ? sprintf( __( 'Spammed: %s', 'buddyboss' ), number_format_i18n( $topics['spammed'] ) ) : ''; $topic_titles[] = !empty( $topics['trashed'] ) ? sprintf( __( 'Trashed: %s', 'buddyboss' ), number_format_i18n( $topics['trashed'] ) ) : ''; // Compile the hidden topic title $hidden_topic_title = implode( ' | ', array_filter( $topic_titles ) ); } } // Replies if ( !empty( $r['count_replies'] ) ) { $all_replies = wp_count_posts( bbp_get_reply_post_type() ); // Published $reply_count = $all_replies->publish; if ( current_user_can( 'read_private_replies' ) || current_user_can( 'edit_others_replies' ) || current_user_can( 'view_trash' ) ) { // Declare empty arrays $replies = $reply_titles = array(); // Private $replies['private'] = ( !empty( $r['count_private_replies'] ) && current_user_can( 'read_private_replies' ) ) ? (int) $all_replies->{$private} : 0; // Spam $replies['spammed'] = ( !empty( $r['count_spammed_replies'] ) && current_user_can( 'edit_others_replies' ) ) ? (int) $all_replies->{$spam} : 0; // Trash $replies['trashed'] = ( !empty( $r['count_trashed_replies'] ) && current_user_can( 'view_trash' ) ) ? (int) $all_replies->{$trash} : 0; // Total hidden (private + spam + trash) $reply_count_hidden = $replies['private'] + $replies['spammed'] + $replies['trashed']; // Generate the hidden topic count's title attribute $reply_titles[] = !empty( $replies['private'] ) ? sprintf( __( 'Private: %s', 'buddyboss' ), number_format_i18n( $replies['private'] ) ) : ''; $reply_titles[] = !empty( $replies['spammed'] ) ? sprintf( __( 'Spammed: %s', 'buddyboss' ), number_format_i18n( $replies['spammed'] ) ) : ''; $reply_titles[] = !empty( $replies['trashed'] ) ? sprintf( __( 'Trashed: %s', 'buddyboss' ), number_format_i18n( $replies['trashed'] ) ) : ''; // Compile the hidden replies title $hidden_reply_title = implode( ' | ', array_filter( $reply_titles ) ); } } // Topic Tags if ( !empty( $r['count_tags'] ) && bbp_allow_topic_tags() ) { // Get the count $topic_tag_count = wp_count_terms( bbp_get_topic_tag_tax_id(), array( 'hide_empty' => true ) ); // Empty tags if ( !empty( $r['count_empty_tags'] ) && current_user_can( 'edit_topic_tags' ) ) { $empty_topic_tag_count = wp_count_terms( bbp_get_topic_tag_tax_id() ) - $topic_tag_count; } } // Tally the tallies $statistics = array_map( 'number_format_i18n', array_map( 'absint', compact( 'user_count', 'forum_count', 'topic_count', 'topic_count_hidden', 'reply_count', 'reply_count_hidden', 'topic_tag_count', 'empty_topic_tag_count' ) ) ); // Add the hidden (topic/reply) count title attribute strings because we // don't need to run the math functions on these (see above) $statistics['hidden_topic_title'] = isset( $hidden_topic_title ) ? $hidden_topic_title : ''; $statistics['hidden_reply_title'] = isset( $hidden_reply_title ) ? $hidden_reply_title : ''; return apply_filters( 'bbp_get_statistics', $statistics, $r ); }
Changelog
Version | Description |
---|---|
bbPress (r2769) | 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.