bp_nouveau_get_nav_count()
Retrieve the count attribute for the current nav item.
Description
Return
(int) The count attribute for the nav item.
Source
File: bp-templates/bp-nouveau/includes/template-tags.php
function bp_nouveau_get_nav_count() {
$bp_nouveau = bp_nouveau();
$nav_item = $bp_nouveau->current_nav_item;
$count = 0;
if ( 'directory' === $bp_nouveau->displayed_nav ) {
$count = (int) str_replace(',', '', $nav_item->count );
} elseif ( 'groups' === $bp_nouveau->displayed_nav && ( 'members' === $nav_item->slug || 'all-members' === $nav_item->slug ) ) {
$count = groups_get_current_group()->total_member_count;
} elseif ( 'groups' === $bp_nouveau->displayed_nav && 'subgroups' === $nav_item->slug ) {
$count = count( bp_get_descendent_groups( bp_get_current_group_id(), bp_loggedin_user_id() ) );
} elseif ( 'groups' === $bp_nouveau->displayed_nav && 'leaders' == $nav_item->slug ) {
$group = groups_get_current_group();
$admins = groups_get_group_admins( $group->id );
$mods = groups_get_group_mods( $group->id );
$count = sizeof( $admins ) + sizeof( $mods );
// @todo imho BuddyPress shouldn't add html tags inside Nav attributes...
} elseif ( 'personal' === $bp_nouveau->displayed_nav && ! empty( $nav_item->primary ) ) {
$span = strpos( $nav_item->name, '<span' );
// Grab count out of the <span> element.
if ( false !== $span ) {
$count_start = strpos( $nav_item->name, '>', $span ) + 1;
$count_end = strpos( $nav_item->name, '<', $count_start );
$count = (int) substr( $nav_item->name, $count_start, $count_end - $count_start );
}
}
/**
* Filter to edit the count attribute for the nav item.
*
* @since BuddyPress 3.0.0
*
* @param int $count The count attribute for the nav item.
* @param object $nav_item The current nav item object.
* @param string $value The current nav in use (eg: 'directory', 'groups', 'personal', etc..).
*/
return (int) apply_filters( 'bp_nouveau_get_nav_count', $count, $nav_item, $bp_nouveau->displayed_nav );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 3.0.0 | 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.