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

如何将BuddyBoss的排序筛选功能集成到BP Search表单中?

如何将BuddyBoss成员筛选选项集成到BP Search表单中

由于BP Search和BuddyBoss的筛选模块属于独立的功能单元,CSS无法实现结构上的整合,你可以通过以下几种代码方案完成集成:

方法1:利用动作钩子移动筛选模块

通过移除BuddyBoss默认位置的筛选输出,再将其插入到BP Search表单的指定位置:

// 移除默认位置的BuddyBoss成员筛选/排序模块
function remove_buddyboss_member_filters() {
    // 移除成员类型筛选
    remove_action( 'bp_before_directory_members_content', 'bp_members_directory_member_types', 10 );
    // 移除排序选项(若需集成排序)
    remove_action( 'bp_directory_members_order_by', 'bp_directory_members_order_by', 10 );
}
add_action( 'init', 'remove_buddyboss_member_filters' );

// 将筛选模块插入到BP Search表单上方
function inject_filters_into_bp_search() {
    // 输出成员类型筛选
    bp_members_directory_member_types();
    // 输出排序选项(按需添加)
    bp_directory_members_order_by();
}
// 可选钩子:bps_before_search_form(表单前)/ bps_after_search_form(表单后)
add_action( 'bps_after_search_form', 'inject_filters_into_bp_search' );

注意:不同版本的BuddyBoss可能使用不同的钩子/函数名,可查看插件代码或官方文档确认具体标识。

方法2:自定义BP Search表单模板

直接修改BP Search的表单模板,手动插入BuddyBoss筛选代码:

  1. 找到BP Search插件的模板文件,通常路径为/plugins/bp-search/templates/search-form.php
  2. 将该文件复制到你的主题(或子主题)目录下的/bp-search/文件夹(无则新建)
  3. 在模板的合适位置(如表单末尾)插入以下代码:
<!-- 插入BuddyBoss成员类型筛选 -->
<?php bp_members_directory_member_types(); ?>

<!-- 插入BuddyBoss排序选项 -->
<?php bp_directory_members_order_by(); ?>

方法3:将排序选项转为BP Search自定义字段

通过代码将BuddyBoss的排序逻辑整合到BP Search的表单字段中:

// 向BP Search表单添加自定义排序字段
function add_sort_option_to_bp_search( $fields ) {
    $fields['buddyboss_sort'] = array(
        'name' => '排序方式',
        'type' => 'select',
        'options' => array(
            'newest' => '最新加入',
            'recent' => '最近活跃',
            'alphabetical' => '字母顺序'
        ),
        'default' => 'newest'
    );
    return $fields;
}
add_filter( 'bps_fields', 'add_sort_option_to_bp_search' );

// 让BP Search应用BuddyBoss的排序逻辑
function apply_buddyboss_sort_logic( $query ) {
    if ( isset( $_POST['buddyboss_sort'] ) ) {
        switch ( $_POST['buddyboss_sort'] ) {
            case 'newest':
                $query['orderby'] = 'registered';
                $query['order'] = 'DESC';
                break;
            case 'recent':
                $query['orderby'] = 'last_activity';
                $query['order'] = 'DESC';
                break;
            case 'alphabetical':
                $query['orderby'] = 'display_name';
                $query['order'] = 'ASC';
                break;
        }
    }
    return $query;
}
add_filter( 'bps_pre_query', 'apply_buddyboss_sort_logic' );

注意事项

  • 所有代码建议添加到子主题的functions.php文件或自定义代码插件中,避免主题/插件更新导致代码丢失
  • 测试前建议备份网站数据,确保不同插件版本的兼容性

内容的提问来源于stack exchange,提问作者Chris Hechler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:15:12