如何使用 bbPress 搜索元字段等于特定字符串的组?

How to search for a group where a meta field equals a specific string with bbPress?

我快疯了...我需要进行 bbPress 组搜索以仅查找元字段中包含特定字符串的那些组。

我尝试了在这里找到的内容:https://codex.buddypress.org/plugindev/group-meta-queries-usage-example/

我使用了不同的元字段,但尝试按应有的方式实现它。我可以更新和读取元值,但我无法使 meta_query 正常工作。

我可以看到 filter_ajax_querystring 函数正在执行,因为我在那里放了几个 echo 来测试,搜索词也在那里,只是没有找到带有 meta key 的组- 它就在那里。

谁能给点启发?我错过了什么?

这是我的群组循环:

    $params['meta_query'] = array(
        array(
            'key'     => 'bp_symbol_code',
            'value'   => $_REQUEST['s'],
            'compare' => '='
        )
    );

    if ( bp_has_groups( bp_ajax_querystring( 'groups' ) . '&' . http_build_query( $params ) ) ) {
        while ( bp_groups() ) {
            bp_the_group();
            // redirect after header definitions - cannot use wp_redirect( $location );
            ?>
               <script type="text/javascript">
               <!--
                  window.location= '<?php echo bp_group_permalink(); ?>';
               //-->
               </script>
            <?php
        }
    }

好吧,我觉得自己很蠢....

这就是问题所在:

if ( bp_has_groups( bp_ajax_querystring( 'groups' ) . '&' . http_build_query( $params ) ) )

bp_has_groups() 正在接收数组和查询字符串...

所以解决方案就是把上面的改成这样:

if ( bp_has_groups( array_merge( bp_ajax_querystring( 'groups' ), $params ) ) )

谢谢加文,你的评论最终让我意识到了这个错误:)