Как я могу скрыть изображения медиа-библиотеки от обычных пользователей?

Как администратор мне очень нравятся функции и функциональность медиаредактора WordPress 3.5.

Однако с многопользовательским сайтом все пользователи могут видеть все изображения в медиа-библиотеке – независимо от того, загружены они или нет. Раньше скрипт functions.php мог маскировать / ограничивать доступ.
Например:

 // Hide Media Library tab Tab from each individual agent function remove_medialibrary_tab($tabs) { if ( !current_user_can( 'update_core' ) ) { unset($tabs['library']); return $tabs; } } add_filter('media_upload_tabs','remove_medialibrary_tab'); не // Hide Media Library tab Tab from each individual agent function remove_medialibrary_tab($tabs) { if ( !current_user_can( 'update_core' ) ) { unset($tabs['library']); return $tabs; } } add_filter('media_upload_tabs','remove_medialibrary_tab'); 

Это больше не работает, поскольку я считаю, что медиа-библиотека теперь основана на JavaScript.

Вопрос: как я могу скрыть или замаскировать изображения медиа-библиотеки WordPress 3.5 у пользователей, которые не загружали изображения в библиотеке? Я хочу, чтобы пользователи могли видеть только их собственные изображения или видеть только изображения, которые они загружали на эту конкретную должность или страницу.

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

Я не кодер, или, в лучшем случае, любитель, но мне кажется, что варианты могут включать в себя: маскирование или кодирование всех фильтров вложений в раскрывающемся меню новой библиотеки 3.5, оставляя только «загруженные на эту страницу» в списке – или – возможно, коммутатор, позволяющий администраторам включать или отключать видимость для изображений медиа-библиотеки для обычных пользователей.

Любые указания или указания по этому вопросу будут оценены по достоинству.

Solutions Collecting From Web of "Как я могу скрыть изображения медиа-библиотеки от обычных пользователей?"

Чтобы текущие пользователи просматривали только свои загруженные вложения, добавьте следующий код к своим темам:

 add_filter( 'posts_where', 'devplus_wpquery_where' ); function devplus_wpquery_where( $where ){ global $current_user; if( is_user_logged_in() ){ // logged in user, but are we viewing the library? if( isset( $_POST['action'] ) && ( $_POST['action'] == 'query-attachments' ) ){ // here you can add some extra logic if you'd want to. $where .= ' AND post_author='.$current_user->data->ID; } } return $where; } 

Надеюсь это поможет!

Спасибо @timocouckuyt, это прекрасно работает, но вам также нужен этот для ссылки /wp-admin/upload.php:

 add_filter('pre_get_posts', 'hide_posts_media_by_other'); function hide_posts_media_by_other($query) { global $pagenow; if( 'upload.php' != $pagenow || !$query->is_admin ){ return $query; } if( !current_user_can( 'manage_options' ) ) { global $user_ID; $query->set('author', $user_ID ); } return $query; } 

Для полного руководства по скрыть носители и сообщения от других пользователей, пожалуйста, ознакомьтесь с этим руководством: http://jeffreycarandang.com/tutorials/hide-wordpress-posts-media-uploaded-users/

Приветствия, phpbits