class MyPlugin {
public function __construct() {
add_action(\'init\', array(&$this, \'do_member_filter\'));
}
public function do_member_filter() {
$users = new WP_User_Query( array(
\'meta_query\' => array(
array(
\'key\' => "{$GLOBALS[\'wpdb\']->prefix}capabilities",
\'value\' => \'abcrole\',
\'compare\' => \'!=\'
)
)
));
do_action_ref_array(\'pre_user_query\', $users);
}
}
在用户页中排除特定角色的用户
1 个回复
SO网友:kaiser
如何使用回调中的类方法$query
内部对象pre_user_query
是完全合格的核心object
, 所以你可以使用$query->set( \'key\', \'value\' );
以及$query->get( \'key\' );
.
如果您发现这可能会干扰其他回调,那么只需添加remove_filter( current_filter(), __FUNCTION__ );
以使其在第一次调用时自动删除。
另一种方法是,在实例化类时,也可以直接使用这些参数:
$users = new WP_User_Query( array(
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => "{$GLOBALS[\'wpdb\']->prefix}capabilities",
\'value\' => \'abcrole\',
\'compare\' => \'!=\'
),
array(
\'key\' => "{$GLOBALS[\'wpdb\']->prefix}capabilities",
\'value\' => \'ab\',
\'compare\' => \'NOT LIKE\'
)
)
) );
此示例显示了如何通过capability
或role
完全匹配或仅命名LIKE
要排除的角色。例如,当您为某些角色或功能添加前缀,然后希望将其大规模排除时,这会很方便。您也可以在回调中使用相同的函数。注意使用array( array() )
用于元查询。
结束