我正在尝试寻找一种在Wordpress中自定义list_users功能的方法, 我创建了一个名为my_admin的新角色, 并向其中添加了一些功能。问题是list_users功能显示所有用户, 而我只想根据用户元字段仅显示一组用户。
关于edit_users功能的另一个问题是, 我可以限制此功能来编辑用户而不提升他们, 该功能可以编辑用户并提升他们, 这意味着它还可以更改用户角色。我有什么办法可以从中删除此升级功能, 也可以仅选择一个要编辑的输入字段并删除其他字段吗?
function my_new_service_capabilities() {
// Get the role object.
$editor = get_role( 'my_admin' );
// A list of capabilities to add.
$addcaps = array(
'read', 'edit_posts', 'list_users', //I need to list users according to a user meta value.
'edit_users', //I need to enable editing users in only one input field
'moderate_comments', );
foreach ( $addcaps as $acap ) {
// Add the capability.
$editor->add_cap( $acap );
}
}
add_action( 'init', 'my_new_service_capabilities' );
#1
我认为这应该对你有用→https://codex.wordpress.org/Class_Reference/WP_User_Query
- 检索所有用户。
- 用户对于每个循环。
- 使用meta_query参数, 因为WP将功能作为json字符串存储在user_meta中。
我给你一个提示怎么做→
$entire_user_list = get_users();
$somse_users= array();
foreach($entire_user_list as $user){
if($user->has_cap('specific_capability')){
$somse_users[] = $user;
}
}
#2
我已经使用DOMDocument类解决了它。
评论前必须登录!
注册