Как скрыть записи или страницы из админки WordPress

Иногда бывает полезно скрывать «пустые» функциональные страницы на основе шаблона от глаз клиентов, например страница корзины в интернет-магазине.

Реализовать это довольно легко — вставкой нескольких строк кода в functions.php текущей темы.

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

function true_hide_posts_from_admin( $query ) {
	global $pagenow;
	if( is_admin() && 'edit.php' == $pagenow ){
		$query->set( 'post__not_in', array(9,54) ); 
		// через запятую указываем ID постов или страниц, которые хотим скрыть
	}
	return $query;
}
 
add_action( 'pre_get_posts' ,'true_hide_posts_from_admin' );

Если хотите, чтобы функция применялась например только для страниц, модифицируем её следующим образом:

function true_hide_pages_from_admin( $query ) {
	global $pagenow;
	if( is_admin() && 'edit.php' == $pagenow && 'page' == get_query_var('post_type') ){
		// в качестве 'page' в условии можно указать любой произвольный тип постов
		$query->set( 'post__not_in', array(300,271) ); 
		// через запятую прописываем ID страниц, которые хотим скрыть
	}
	return $query;
}
 
add_action( 'pre_get_posts' ,'true_hide_pages_from_admin' );

Доступ к скрытым постам по-прежнему можно получить по прямым ссылкам.

Подпишитесь, чтобы раз в неделю получать свежие статьи с блога по email.

Смотрите также

Комментарии 11

  • Nikas10 июня 2013 в 12:06 #

    А как скрыть для всех пользователей ?

  • Виталий Капля7 октября 2013 в 04:10 #

    Благодарю за пример! Удачи!

  • Рита16 ноября 2014 в 21:11 #

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

  • Фёдор30 мая 2015 в 03:05 #

    Здравствуйте. Очень полезной оказалась функция фильтрации. Но у записи есть комментарии, и они появляются в ленте новых комментариев (которую ликвидировать не хочется). Подскажите, как (после отфильтровки нужной записи) ещё убрать из ленты новых коментариев комментарии конкретной к отфильтрованной записи (то есть с главной страницы)? Спасибо.

  • Максим13 сентября 2015 в 16:09 #

    Спасибо за статью, правда я когда зашел на нее думал именно расказываться как cкрыть oтображение cтраниц в админкe cайта, чтобы их там не видно было. Это можно как то реализовать? Доступ в aдминку есть у многих, но не хочется чтобы были видны и была возможность у них редактировать нужные страницы/записи

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
  • Миша: Привет ещё раз, не поверишь, реально не сталкивался с этим вопросом. По теории можно сказать следующее: во-первых,...

  • Миша: Привет, вообще без проблем, делаешь всё через require(), require_once() - выбирай любую, какая больше нравится.

  • Виталий Моргунов: Привет! Не могу разобаться, как я могу контролировать порядок подключения стилей. В моем случае мне нужно чтобы стили...

  • Миша: Спасибо!

  • w0rmak: Это было просто. Нашел код в интернете. Добавьте и себе ymaps.load(function () { var input = document.getElem...