Flector

Как скрыть «черновики» и записи «на утверждении» от авторов?

Стандартный вывод всех записей

Многим администраторам не нравится, что авторы и редакторы в админке сайта видят все записи, включая черновики и записи на утверждении. Это можно легко исправить, добавив в файл functions.php вашей темы следующий код:

//скрытие черновиков и записей на утверждении start
function wph_hide_draft_pending($views) {
    if (current_user_can('contributor') || current_user_can('author')) { 
        unset($views['all']);
        unset($views['draft']);
        unset($views['pending']);
    }
  return $views;
}
add_filter('views_edit-post', 'wph_hide_draft_pending');
//скрытие черновиков и записей на утверждении end

Можно пойти еще дальше, показывая автору или редактору только его собственные записи. Для этого используйте такой код:

//вывод для авторов и редакторов только их записей start
function wph_hide_draft_pending($views) {
    unset($views['all']);
    unset($views['draft']);
    unset($views['pending']);
    unset($views['publish']);
    return $views;
}
function wph_only_own_posts( $wp_query ) {
    if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/edit.php') !== false) {
        global $current_user;
        $wp_query->set('author', $current_user->id);
    }
}
if (current_user_can('contributor') || current_user_can('author')) {
  add_filter('views_edit-post', 'wph_hide_draft_pending');
  add_filter('parse_query', 'wph_only_own_posts');
}
//вывод для авторов и редакторов только их записей end

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


Комментарии (4 комментария)
  1. Давно искали как это сделать! Автору - большая благодарность!

  2. VotBot:

    Жаль "Расширенной" функции не хватает ограничений для просмотра Комментариев к статьям не принадлежащих Автору.

  3. VotBot:
    //Доступ пользователя с ролью (author) только к собственным постам,  черновикам и постам на утверждении, просмотра Комментариев к статьям не принадлежащих Автору
    function wph_hide_draft_pending($views) {
        unset($views['all']);
        unset($views['draft']);
        unset($views['pending']);
        unset($views['publish']);
        unset($views['trash']);
        return $views;
    }
    function wph_only_own_posts( $wp_query ) {
        if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/edit.php') !== false) {
            global $current_user;
            $wp_query->set('author', $current_user->id);
        }
    }
    if (current_user_can('author')) {
      add_filter('views_edit-post', 'wph_hide_draft_pending');
      add_filter('parse_query', 'wph_only_own_posts');
    }
     
    add_filter( 'pre_get_comments', function ( $data ) {
    	// Выходим, если не админка
    	if ( ! is_admin() ) {
    		return;
    	}
     
    	$screen = get_current_screen();
     
    	// Проверяем, что текущая страница страница с комментариями и текущий пользователь не Админ или Редактор
    	if ( $screen->base === 'edit-comments' && ! current_user_can( 'manage_options' ) ) {
    		// Указываем запрашивать комментарии только текущего пользователя
    		$data->query_vars['user_id'] = get_current_user_id();
    	}
    } );
  4. VotBot:

    И всё равно будут "видны" комментарии пусть и частично - количество "шапке" таблицы комментариев, и фрагментарно в "На виду" и "Активность" на стартовой в "Админке Wordpress"

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!