/** * Return the moderators of a forum * * @since 2.6.0 bbPress (r5834) * * @param int $forum_id Optional. Forum id * @param array $args This function supports these arguments: * - before: Before the tag list * - sep: Tag separator * - after: After the tag list * @uses bbp_get_forum_id() To get the forum id * @uses get_the_term_list() To get the moderator list * * @return string Moderator list of the forum */ function bbp_get_forum_mod_list($forum_id = 0, $args = array()) { // Bail if forum-mods are off if (!bbp_allow_forum_mods()) { return ''; } // Parse arguments against default values $r = bbp_parse_args($args, array('before' => '<div class="bbp-forum-mods"><p>' . esc_html__('Moderators:', 'bbpress') . ' ', 'sep' => ', ', 'after' => '</p></div>', 'none' => ''), 'get_forum_mod_list'); // Bail if forum ID is invalid $forum_id = bbp_get_forum_id($forum_id); if (empty($forum_id)) { return ''; } // Get forum moderators $moderators = bbp_get_forum_mods($forum_id); if (!empty($moderators)) { // In admin, use nicenames if (is_admin()) { // @todo link to filtering forums by moderator $users = wp_list_pluck($moderators, 'name'); // In theme, use display names & profile links } else { $users = array(); $term_ids = wp_list_pluck($moderators, 'term_id'); foreach ($term_ids as $term_id) { $user_id = bbp_get_term_taxonomy_user_id($term_id); $users[] = bbp_get_user_profile_link($user_id); } } $retval = $r['before'] . implode($r['sep'], $users) . $r['after']; // No forum moderators } else { $retval = $r['none']; } return $retval; }
/** * Get moderators of a forum * * @since 2.6.0 bbPress (r5834) * * @param int $forum_id Forum id. * @uses bbp_get_forum_id() To get the forum id * @uses bbp_is_forum() To make sure it is a forum * @uses bbp_get_forum_mod_tax_id() To get the forum moderator taxonomy * @uses bbp_get_forum_mods() To get the forum's moderator terms * @uses bbp_get_term_taxonomy_user_id() To convert terms to user ids * * @return boolean|array Return false on error or empty, or array of user ids */ function bbp_get_forum_moderator_ids($forum_id = 0) { // Bail if no forum ID. $forum_id = bbp_get_forum_id($forum_id); if (empty($forum_id)) { return false; } // Bail if forum does not exist. if (!bbp_is_forum($forum_id)) { return false; } // Get forum taxonomy terms. $terms = bbp_get_forum_mods($forum_id); // Bail if no terms found. if (empty($terms)) { return false; } // Setup default values $term_ids = wp_parse_id_list($terms); $taxonomy = bbp_get_forum_mod_tax_id(); $moderator_ids = array(); // Convert term ids to user ids. foreach ($term_ids as $term_id) { $moderator_ids[] = bbp_get_term_taxonomy_user_id($term_id, $taxonomy); } // Remove empties $retval = wp_parse_id_list(array_filter($moderator_ids)); // Filter & return return apply_filters('bbp_get_forum_moderator_ids', $retval, $forum_id); }
/** * Get forum mods for a specific forum ID * * @since 2.2.0 bbPress (r4165) * * @param int $forum_id * @param string $sep * * @return string */ function bbp_get_forum_mod_names($forum_id = 0, $sep = ', ') { $forum_mods = bbp_get_forum_mods($forum_id); $pluck = wp_list_pluck($forum_mods, 'name'); $terms = !empty($pluck) ? implode($sep, $pluck) : ''; return apply_filters('bbp_get_forum_mod_names', $terms, $forum_id, $sep); }