我有一个用户循环,我按照元值过滤用户:
<?php
$user_query = new WP_User_Query( array(
'fields' => 'ID',
'meta_key' => 'country',
'meta_value' => "china",
'compare' => 'IN' ) );
$user_ids = $user_query->get_results();
?>
这是有效的。但是我想向那些已经进入类似中国,俄罗斯,挪威和#34;不仅仅是&#34;中国&#34;,所以
'compare' => 'IN' ) );
必须替换为&#34; contains&#34;之类的内容,是否有一种简单的方法可以做到这一点?
答案 0 :(得分:1)
知道了:
<?php
// args
$args = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'country',
'value' => 'germany',
'compare' => 'LIKE'
))
);
// The Query
$user_query = new WP_User_Query( $args );
// User Loop
if ( ! empty( $user_query->results ) ) {
foreach ( $user_query->results as $user ) {
echo '<p>' . $user->display_name . '</p>';
}
} else {
echo 'No users found.';
}
?>
<?php
// aaaaaand reset ...
wp_reset_query();
?>
答案 1 :(得分:0)
我想我理解你的问题,但为了澄清一下,你希望能够搜索“meta_value”&#39;对于已进入&#34; china&#34;的用户但也可以输入其他值?如果是这种情况,我想你想在比较中使用LIKE。
<?php
$user_query = new WP_User_Query( array(
'fields' => 'ID',
'meta_key' => 'country',
'meta_value' => "china",
'compare' => 'LIKE' ) );
$user_ids = $user_query->get_results();
?>