根据条件将buddypress用户列表添加到数组中

时间:2017-09-24 23:04:36

标签: php mysql wordpress buddypress

我在wordpress安装上使用buddypress。我想将一个user_id数组放入一个变量中,然后我可以使用它来操作,例如,在HTML中列出或发送消息。

我尝试使用以下代码。我通过phpmyadmin验证了我的SQL查询是否正确。

function my_bp_get_users_by_xprofile( $field_id, $value ) {

    global $wpdb;

    $user_ids = $wpdb->get_col(
        $wpdb->prepare(
            "
                SELECT `user_id`
                FROM '{$wpdb->prefix}bp_xprofile_data'
                WHERE `field_id` = %d
                    AND `value` = %s
            "
            , $field_id
            , $value
        )
    );
}

然后在页面上,我想做这样的事情:

$user_ids = my_bp_get_users_by_xprofile( 5, '%18%' );
echo $user_ids;

我还通过调用一个简单回显字符串的简单函数来验证我的php(bp-custom)的位置。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

我认为您错过了函数中的返回值,因此您正在调用该方法但不返回任何内容。

function my_bp_get_users_by_xprofile( $field_id, $value ) {
    global $wpdb;

    $user_ids = $wpdb->get_col(
        $wpdb->prepare(
            "
                SELECT `user_id`
                FROM '{$wpdb->prefix}bp_xprofile_data'
                WHERE `field_id` = %d
                    AND `value` = %s
            "
            , $field_id
            , $value
        )
    );

    // Return only if there are user_id's found
    if (!empty($user_ids) {
        return $user_ids;
    }

    // Return false if nothing found
    return false;
}

然后在您的模板中,您还需要检查它是否为空:

$user_ids = my_bp_get_users_by_xprofile( 5, '%18%' );
if ($user_ids) {
    // You first need to see what the structure of the returned array is and what values the indexes have
    echo $user_ids['value'];
}