Intereting Posts
Я хочу включить подключение к Facebook, как это сделать? Пользовательский переписывание в плагин с параметрами WP_User_Query с комбинированным мета-запросом – не работает? Базовая аналитика в многопользовательской сети WordPress Как добавить метаполя на страницу добавления / редактирования пользовательской таксономии? Фильтр the_title, применяемый к пунктам меню Обновление до 3.1 – Неустранимая ошибка: вызов неопределенной функции wp_cache_get () Как добавить тег H4 к фильтру the_content (после содержимого)? Переписать параметр числового идентификатора для иерархического пользовательского типа сообщения Скрыть слово «категория» от моих постоянных ссылок Какой крючок используется для добавления уведомляющего сообщения в начале моего <body> Сортировать пользователей по "день рождения" с помощью WP_User_Query Пользовательские элементы меню жесткого кодирования для менеджера меню Сортировка WP_User_Query по значению meta_key с помощью pre_user_query Как отобразить галерею NextGEN в шаблонах?

admin загружает pre_get_posts не работает как ожидалось

Это 4 вечера, и мой мозг прекратил работать час назад, и для жизни меня просто не могу понять, почему это не так, как ожидалось.

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

/** * Hide others media from Contributors */ function ggstyle_hide_media_by_other($query) { // When I add this if statement the filter no longer works. $screen = get_current_screen(); if ($screen->id != 'upload') { return $query; } if (current_user_can('contributor')) { $query->set('author', get_current_user_id()); } return $query; } add_filter('pre_get_posts', 'ggstyle_hide_media_by_other'); // Debuggin function function ggstyle_debug() { // Debug shows that this screen IS 'upload'.... echo "<pre>".print_r(get_current_screen(), true)."</pre>"; } add_filter('admin_head', 'ggstyle_debug'); 

get_current_screen работает только в области администрирования, но даже у администратора могут возникнуть проблемы на некоторых страницах. $pagenow глобальную переменную $pagenow .

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

 // Prevents user to see all uploads, only theirs add_action('pre_get_posts','wpse_users_own_attachments'); function wpse_users_own_attachments( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, 'WP_User') ) return; if( !in_array( $pagenow, array( 'upload.php', 'admin-ajax.php' ) ) ) return; if( current_user_can('contributor') ) $wp_query_obj->set('author', $current_user->ID ); return; }