You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:31:05