Intereting Posts
Искать вложения только в настраиваемом типе сообщений Создавать неупорядоченный список из настраиваемого поля типа, разделенного запятой next_posts_link и previous_posts_link Извлечь список должностей из термина «таксономия» в CPT и список под 2. CPT не удается получить доступ к wp-admin после сбоя и восстановления таблицы параметров Массовое редактирование EXIF-данных для jpeg-изображений, загруженных в медиа-библиотеку? Избегание вызовов для темы-совместимости Shortcode Не отображается в правом месте Укладка «активной» ссылки за пределами меню WordPress по умолчанию Как я могу получить список комментариев по целевым Смешать CPT на главной странице w. множественные критерии сортировки Страница индекса не работает Скачайте все доступные темы WordPress.com? правило перезаписи для домашней / индексной страницы WP_Query с page_ids в аргументах без результата

Удалить возможность для администраторов удалять администраторов

Я изучал роли и возможности, а также работал над созданием уникальных возможностей и ролей. Я создал роль «Мастер-редактор», чтобы поддерживать пользователей практически со всеми возможностями … Однако edit_users & delete_users явно разрешает редактору пользователям CUD, включая существующих администраторов …

На данный момент я должен новичок в кодировании, чтобы быть уверенным в редактировании users.php, но я должен быть близок к решению:

if ( ! current_user_can( 'delete_users' ) ) // or is trying to delete an admin's $userids wp_die(__('You can’t delete users.')); // or administrators $update = 'del'; $delete_count = 0; foreach ( $userids as $id ) { if ( ! current_user_can( 'delete_user', $id ) ) wp_die(__( 'You can’t delete that user.' ) ); if ( $id == $current_user->ID ) { $update = 'err_admin_del'; continue; } switch ( $_REQUEST['delete_option'] ) { case 'delete': wp_delete_user( $id ); break; case 'reassign': wp_delete_user( $id, $_REQUEST['reassign_user'] ); break; } ++$delete_count; } 

Я не могу понять, как проверить, что указанные $ userids являются идентификатором пользователя администраторов. Потому что, если я могу добавить это к смерти … Я на правильном пути? Заранее спасибо.

Ваш вопрос, похоже, сводится к этому

Я не могу понять, как проверить, что указанные $ userids являются идентификатором пользователя администраторов.

Пытаться

 user_can($id,'administrator') 

http://codex.wordpress.org/Function_Reference/user_can

В кодексе есть предупреждение об использовании имен ролей с функцией current_user_can и это очень похоже на user_can поэтому я полагаю, что предостережение выполняется до тех пор, пока конфликтующие инструкции не будут отсортированы.

Не передавайте имя роли в current_user_can (), так как это не гарантирует правильную работу.

На той же странице также говорится:

$ возможности
(строка) (требуется) или имя роли
По умолчанию: нет

Как и источник:

  • @param string $ Возможность Возможности или название роли.

Вы взламываете основной файл? Пользователи users.php – это не users.php не так ли? Это высокий уровень обслуживания, который вы снижаете, если это так.

Очень приятно писать @s_ha_dum. Я просто продлю свой ответ на противоречие в документации.

Недавно я имел дело с current_user_can , немного исследовал и придумал эту функцию:

 /** * Function name grabbed from: http://core.trac.wordpress.org/ticket/22624 * 2 lines of code from TutPlus: http://goo.gl/X4lmf */ if( !function_exists( 'current_user_has_role' ) ) { function current_user_has_role( $role ) { $current_user = new WP_User( wp_get_current_user()->ID ); $user_roles = $current_user->roles; $is_or_not = in_array( $role, $user_roles ); return $is_or_not; } }