使用的问题array_merge
就是不能使用分页。我真的很喜欢@Andy Adams的解决方案,但如果您正在搜索许多角色,使用他的元查询将导致very slow 查询(内部执行新INNER JOIN
对于每个元查询)。
我的解决方案是使用正则表达式元查询:
<?php
global $wpdb;
$blog_id = get_current_blog_id();
$roles = array(\'editor\', \'administrator\');
$meta_query = array(
\'key\' => $wpdb->get_blog_prefix($blog_id) . \'capabilities\',
\'value\' => \'"(\' . implode(\'|\', array_map(\'preg_quote\', $roles)) . \')"\',
\'compare\' => \'REGEXP\'
);
$user_query = new WP_User_Query(array(
\'meta_query\' = array($meta_query)
));
?>
这将生成一个类似以下内容的查询:
array(
\'meta_query\' => array(
array(
\'key\' => \'wp_capabilities\'
\'value\' => \'"(editor|administrator)"\'
\'compare\' => \'REGEXP\'
)
)
);