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
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 | 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.