如何在BuddyPress侧边栏仅显示推荐群组?求免费插件或函数
实现侧边栏展示推荐BuddyPress群组的方案
一、免费插件选项
- BuddyPress Group Widgets:这款插件专门扩展BuddyPress的群组小工具功能,支持按「推荐(Featured)」属性筛选群组,直接在小工具设置里勾选对应选项就能在侧边栏展示推荐群组列表,适配WordPress 6.7和BuddyPress 14.2.1版本,操作简单无需代码。
- WP Widget for BuddyPress Groups:轻量免费插件,提供群组筛选功能,包含「仅显示推荐群组」的开关,添加到侧边栏后配置即可生效,无冗余功能。
二、自定义函数实现(无需插件)
如果不想依赖插件,可通过以下自定义代码实现。将代码添加到主题的functions.php文件或自定义代码片段插件中:
// 注册自定义推荐群组小工具 class Featured_BP_Groups_Widget extends WP_Widget { public function __construct() { parent::__construct( 'featured_bp_groups_widget', '推荐BuddyPress群组', array( 'description' => '仅展示推荐的BuddyPress群组' ) ); } // 小工具前端显示 public function widget( $args, $instance ) { echo $args['before_widget']; if ( ! empty( $instance['title'] ) ) { echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title']; } // 查询推荐群组 $group_args = array( 'meta_key' => '_bp_group_featured', 'meta_value' => '1', 'orderby' => 'date_created', 'order' => 'DESC', 'per_page' => ! empty( $instance['number'] ) ? $instance['number'] : 5, ); $groups = bp_groups_get_groups( $group_args ); if ( ! empty( $groups['groups'] ) ) { echo '<ul class="featured-bp-groups-list">'; foreach ( $groups['groups'] as $group ) { echo '<li><a href="' . bp_get_group_permalink( $group ) . '">' . bp_get_group_name( $group ) . '</a></li>'; } echo '</ul>'; } else { echo '<p>暂无推荐群组</p>'; } echo $args['after_widget']; } // 小工具后台设置 public function form( $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : '推荐群组'; $number = ! empty( $instance['number'] ) ? $instance['number'] : 5; ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">标题:</label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>"> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>">显示数量:</label> <input class="tiny-text" id="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'number' ) ); ?>" type="number" value="<?php echo esc_attr( $number ); ?>" min="1"> </p> <?php } // 保存小工具设置 public function update( $new_instance, $old_instance ) { $instance = array(); $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? sanitize_text_field( $new_instance['title'] ) : ''; $instance['number'] = ( ! empty( $new_instance['number'] ) ) ? absint( $new_instance['number'] ) : 5; return $instance; } } // 注册小工具 function register_featured_bp_groups_widget() { register_widget( 'Featured_BP_Groups_Widget' ); } add_action( 'widgets_init', 'register_featured_bp_groups_widget' );
添加代码后,进入WordPress后台「外观-小工具」,就能找到「推荐BuddyPress群组」小工具,将其添加到侧边栏并配置标题和显示数量即可。
注意事项
- 修改主题
functions.php前建议备份文件,避免代码错误导致网站故障; - 也可使用自定义代码片段插件(如Code Snippets)添加代码,更安全无需修改主题文件;
- 代码使用BuddyPress原生函数和推荐群组元键
_bp_group_featured,确保与当前版本兼容。
内容的提问来源于stack exchange,提问作者Gaurav
相关产品推荐
相关产品推荐

