• Всем привет.
    Подскажите какую функцию или хук можно использовать, чтоб в консоле WP, в медиа библиотеке все фалы для каждого пользователя отображались свои. Поставил галку доступ только для админов, но их все равно видно, только отредактировать нельзя.Как сделать, чтоб если админ добавил картинки, то только он их в библиотеке видил, а остальные пользователи только свои?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Вероятно, поможет этот сниппет..

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

    Добавить в файл functions.php используемой темы или оформить в виде плагина. Результат работы — админ видит всё, юзеры (авторы) только свое.

    WOW! Спасибо, сработало:)

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Поправка: pre_get_posts — это действие, а не фильтр, объект $query передаётся по ссылке, поэтому можно обойтись без return:

    function show_posts_by_current_author_only($query) {
        global $pagenow, $user_ID;
    
        if( 'upload.php' == $pagenow && !current_user_can('manage_options') )
    		$query->set('author', $user_ID);
    }
    if ( is_admin() )
    	add_action('pre_get_posts', 'show_posts_by_current_author_only');

    это действие

    Точно. Как я невнимательно..

    Странно.
    Помню, что раньше работало, а вот сейчас не хочет…
    Пробовал на нескольких шаблонах..

    Да, действительно представленный код не рабочий. Пожалуйста подскажите как разграничить доступ к медиафайлам?

    Прелестно.=)
    Огромное спасибо. Еще лучше чем нужно было)

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Отображать медиафайлы каждому пользователю свои» закрыта для новых ответов.