• Всем привет.
    У меня блог, в котором много пользователей пишут статьи.
    Для удобства сделана возможность редактировать их до публикации, смотреть статус и т.д. Т.е. открыт доступ к админке «Записи — Все записи». Но хотелось бы скрыть оттуда записи, которые не принадлежат этому конкретному пользователю(для определенной роли).

    Может кто подскажет, как это сделать?

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Чтобы записи всех авторов видел только администратор, можно добавить фрагмент в functions.php активной темы:

    function show_posts_by_current_author_only($query) {
    	global $pagenow, $user_ID;
    
    	if( 'edit.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');

    круто…работает. Спасиб огромное. Теперь, чтобы сделать так, чтобы всех авторов видел не только админ, но и юзеры начиная с определенного левла. Надо вставить в иф видимо что-то, но что именно?

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно указать нужную роль в current_user_can():

    if( 'edit.php' == $pagenow && !current_user_can('editor') )
    	$query->set('author', $user_ID);

    Ага, всё, спасиб. Сделал 🙂

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Скрыть посты других авторов в админке.» закрыта для новых ответов.