按meta_value的Wordpress循环过滤器

时间:2014-08-01 13:31:37

标签: arrays wordpress loops

我有一个用户循环,我按照元值过滤用户:

<?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;之类的内容,是否有一种简单的方法可以做到这一点?

2 个答案:

答案 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(); 
?>

Source