Intereting Posts
Мой цикл случайных сообщений затягивается комментариями указанной случайной записи WordPress прекратил добавлять URLS для дубликатов Таксономии на страницах с пользовательским форматированием Структура Permalink с переменными $ _SESSION Фильтровать медиа по Featured on Admin Запрос имеет другой ответ, если пользователь зарегистрирован Показать размер пользовательского изображения меньше в редакторе Автоматическое удаление сообщения в определенную дату Использование WP_Query и WP_Meta_Query Вне WordPress Интеграция WordPress на мой сайт, сохраняя мою собственную систему аутентификации Хранить запрошенный / введенный url с помощью add_rewrite_rule Проверка данных конфигурации виджета на странице администратора Отображать сообщение в зависимости от возможности внешнего цикла Пользовательский тип сообщений и отображение пользовательских таксономий Двунаправленная синхронизация типа сообщения среди многосайтовых блогов

Скрыть администраторов из списка пользователей, кроме текущего пользователя (администратора)

этот код отлично работает! проблема в том, что этот код также скрывает текущего пользователя (если администратор), поэтому я пытаюсь скрыть всех администраторов, кроме текущего пользователя.

Мне нужна помощь для редактирования sql, чтобы эта работа работала с "$ user_ID"

function isa_pre_user_query($user_search) { $user = wp_get_current_user(); //if (!current_user_can('administrator')) { // Is Not Administrator - Remove Administrator global $wpdb; $user_ID = get_current_user_id(); $user_search->query_where = str_replace('WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.ID IN ( SELECT {$wpdb->usermeta}.user_id FROM $wpdb->usermeta WHERE {$wpdb->usermeta}.meta_key = '{$wpdb->prefix}capabilities' AND {$wpdb->usermeta}.meta_value NOT LIKE '%administrator%')", $user_search->query_where ); //} } add_action('pre_user_query','isa_pre_user_query'); 

Solutions Collecting From Web of "Скрыть администраторов из списка пользователей, кроме текущего пользователя (администратора)"

Цитата из лучших рекомендаций WordPress VIP Development :

Помните, что база данных не является ящиком для инструментов. Несмотря на то, что вы можете выполнять большую часть работы с базой данных, ваш код будет значительно улучшаться, сохраняя простые запросы к базе данных и выполняя необходимые вычисления и логику в PHP.

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

Вы можете легко достичь этого, используя функции WordPress более высокого уровня:

  <?php /* get all non-admin users */ $args = array( 'meta_key' => 'wp_capabilities', 'meta_value' => 'Administrator', /* you better check for a capability, not a role */ 'meta_compare' => 'NOT LIKE' ); $user_query = new WP_User_Query( $args ); /* if current user is admin, get its user object */ $current_admin_user = current_user_can( 'activate_plugins' ) ? wp_get_current_user() : null; /* merge non-admin users with current admin-user */ $results = $user_query->get_results(); $results[] = $current_admin_user; /* update the user query */ $user_query->__set( 'results', $results ); $user_query->__set( 'total_users', count( $results )); /* do whatever you want */ print_r($user_query); 

'pre_user_query' теперь 'wp_user_query'