我使用Wordpress 4.8,我想通过元值获得用户。我希望用户在7天内没有连接,并且“email\\u not\\u logged”元为空。
所以我试着:
$users = get_users(array(
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'meta_key\' => \'last_login\',
//\'meta_value\' => \'DATE_SUB(NOW(),INTERVAL 7 DAY)\',
\'meta_value\' => date(\'Y-m-d H:i\', strtotime(\'-7 days\')),
\'meta_compare\' => \'<=\',
\'type\' => \'DATE\',
),
array(
\'meta_key\' => \'email_not_logged\',
\'meta_compare\' => \'NOT EXISTS\',
)
))
);
global $wpdb;
echo "<pre>";
print_r($wpdb->last_query);
echo "</pre>";
我不知道为什么,但我得到:
从ma\\u usermeta中选择user\\u id、meta\\u key、meta\\u value,其中user\\u id按umeta\\u id ASC的(82)顺序
我怎样才能有好的查询来测试它?
但是,这是可行的:
$users = get_users(
array(
\'meta_key\' => \'last_login\',
//\'meta_value\' => \'DATE_SUB(NOW(),INTERVAL 7 DAY)\',
\'meta_value\' => date(\'Y-m-d H:i:s\', strtotime(\'-7 days\')),
\'meta_compare\' => \'<=\',
\'type\' => \'DATE\',
)
);
我是否使用了错误的meta\\u查询?
SO网友:janh
get_users()
是一个方便的包装WP_User_Query. 也许你可以直接使用它,例如。
$user_search = new WP_User_Query(
array(
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'meta_key\' => \'last_login\',
//\'meta_value\' => \'DATE_SUB(NOW(),INTERVAL 7 DAY)\',
\'meta_value\' => date(\'Y-m-d H:i\', strtotime(\'-7 days\')),
\'meta_compare\' => \'<=\',
\'type\' => \'DATE\',
),
array(
\'meta_key\' => \'email_not_logged\',
\'meta_compare\' => \'NOT EXISTS\',
)
)
)
);
然后查看它通过打印生成的SQL
$user_search->request
?