BBP_Forums_Widget::widget( array $args, array $instance )
Displays the output, the forum list
Description Description
Parameters Parameters
- $args
-
(Required) Arguments
- $instance
-
(Required) Instance
Source Source
File: includes/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 );
// bbPress 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(
// What and how
'post_type' => bbp_get_forum_post_type(),
'post_status' => bbp_get_public_status_id(),
'post_parent' => $settings['parent_forum'],
'posts_per_page' => (int) get_option( '_bbp_forums_per_page', 50 ),
// Order
'orderby' => 'menu_order title',
'order' => 'ASC',
// Performance
'ignore_sticky_posts' => true,
'no_found_rows' => true,
'update_post_term_cache' => false,
'update_post_meta_cache' => false
) );
// 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="bbp-forums-widget">
<?php while ( $widget_query->have_posts() ) : $widget_query->the_post(); ?>
<li <?php echo ( bbp_get_forum_id() === $widget_query->post->ID ? ' class="bbp-forum-widget-current-forum"' : '' ); ?>>
<a class="bbp-forum-title" href="<?php bbp_forum_permalink( $widget_query->post->ID ); ?>">
<?php bbp_forum_title( $widget_query->post->ID ); ?>
</a>
</li>
<?php endwhile; ?>
</ul>
<?php echo $args['after_widget'];
// Reset the $post global
wp_reset_postdata();
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.0.0 | Introduced. |