显示与当前用户匹配2个元字段的所有用户

时间:2019-03-05 作者:Phil

PHP新手在此。。。因此,感谢您的耐心和慷慨的提前回答。

我正在尝试显示与当前用户匹配两个字段的所有用户的列表,但它不起作用,因此我将感谢您的帮助!

$current_user_id = get_current_user_id();
$current_team_id = get_user_meta( $current_user_id, \'seeking_first\', true );
$current_team_id = get_user_meta( $current_user_id, \'team_manager\', true );
$args = array(
    \'meta_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'key\' => \'person_talent\',
            \'value\' => \'seeking_first\',
            \'compare\' => \'=\'
        ),
        array(
            \'key\' => \'team_number\',
            \'value\' => \'current_team_id\',
            \'compare\' => \'=\'
        )
    )
);

$user_query = new WP_User_Query( $args );

if ( ! empty( $user_query->get_results() ) ) {
    foreach ( $user_query->get_results() as $user ) {
        echo \'<li>\' . $user->first_name . \' - \' . $user->user_email . \'</li>\';
    }
} else {
    echo \'No users found.\';
}

1 个回复
最合适的回答,由SO网友:MikeNGarrett 整理而成

你很接近。

首先,确保使用唯一的变量名。我已设置$current_seeking_id 对于元键seeking_first$current_team_id 对于元键team_manager.

接下来,您必须在查询中使用这些来匹配。我已将这些变量放置在meta\\u查询的值处。

这假设seeking_first 值与person_talent 价值和team_manager 值与team_number 价值情况可能并非如此,您可能需要做一些额外的工作才能与之匹配。

$current_user_id = get_current_user_id();
$current_seeking_id = get_user_meta( $current_user_id, \'seeking_first\', true );
$current_team_id = get_user_meta( $current_user_id, \'team_manager\', true );
$args = array(
    \'meta_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'key\' => \'person_talent\',
            \'value\' => $current_seeking_id,
            \'compare\' => \'=\'
        ),
        array(
            \'key\' => \'team_number\',
            \'value\' => $current_team_id,
            \'compare\' => \'=\'
        )
    )
);

$user_query = new WP_User_Query( $args );

$results = $user_query->get_results();
if ( ! empty( $results ) ) {
    echo \'<ul>\';
    foreach ( $results as $user ) {
        echo \'<li>\' . $user->first_name . \' - \' . $user->user_email . \'</li>\';
    }
    echo \'</ul>\';
} else {
    echo \'No users found.\';
}
注意:我还清理了查询结果,为get\\u结果设置了一个变量,以便只调用一次。看见$results = $user_query->get_results();

相关推荐