BBP_Forums_Widget::widget( mixed $args, array $instance )
Displays the output, the forum list
Description
Parameters
- $args
-
(Required) Arguments
- $instance
-
(Required) Instance
Source
File: bp-forums/common/widgets.php
public function widget( $args, $instance ) {
// Get widget settings
$settings = $this->parse_settings( $instance );
// Typical WordPress filter
$settings['title'] = apply_filters( 'widget_title', $settings['title'], $instance, $this->id_base );
// Forums filter
$settings['title'] = apply_filters( 'bbp_forum_widget_title', $settings['title'], $instance, $this->id_base );
// Note: private and hidden forums will be excluded via the
// bbp_pre_get_posts_normalize_forum_visibility action and function.
$widget_query = new WP_Query( array(
'post_type' => bbp_get_forum_post_type(),
//'post_parent' => $settings['parent_forum'],
'post_parent' => 0,
'post_status' => bbp_get_public_status_id(),
'posts_per_page' => bbp_get_forums_per_page(),
'ignore_sticky_posts' => true,
'no_found_rows' => true,
'orderby' => 'menu_order title',
'order' => 'ASC'
) );
// Bail if no posts
if ( ! $widget_query->have_posts() ) {
return;
}
echo $args['before_widget'];
if ( !empty( $settings['title'] ) ) {
echo $args['before_title'] . $settings['title'] . $args['after_title'];
} ?>
<ul class="bb-sidebar-forums">
<?php while ( $widget_query->have_posts() ) : $widget_query->the_post(); ?>
<li>
<a class="bbp-forum-title" href="<?php bbp_forum_permalink( $widget_query->post->ID ); ?>"><?php bbp_forum_title( $widget_query->post->ID ); ?></a>
<span class="topics-count">
<?php
$topics_count = bbp_get_forum_topic_count( $widget_query->post->ID );
echo $topics_count;
?>
</span>
<?php
$r = array(
'before' => '<ul class="bb-sidebar-forums">',
'after' => '</ul>',
'link_before' => '<li class="bbp-sub-forum">',
'link_after' => '</li>',
'count_before' => ' (',
'count_after' => ')',
'count_sep' => ', ',
'separator' => ' ',
'forum_id' => $widget_query->post->ID,
'show_topic_count' => false,
'show_reply_count' => false,
);
bbp_list_forums($r); ?>
</li>
<?php endwhile; ?>
</ul>
<?php echo $args['after_widget'];
// Reset the $post global
wp_reset_postdata();
}
Changelog
| Version | Description |
|---|---|
| bbPress (r2653) | 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.