Скрываем отдельную запись в WordPress отовсюду или выборочно

Приветствую, дорогие посетители.
Если у вас возникла задача скрыть запись (пост, новость) из общего анонса статей, категории, локального поиска, RSS и т.д., но при этом она должна быть доступна по ссылке, то прочтя данный материал, вы сможете реализовать задуманное.
Данная возможность, к примеру, пригодится в случае, если текст будущей статьи уже написан, а картинки ещё не подоспели или не готовы. В данной ситуации самым логичным будет разместить такую статью, чтобы поисковые системы её проиндексировали, а когда картинки будут подготовлены и размещены, просто добавить их в материал и отобразить запись.
У вас может возникнуть вопрос, как же интернет поисковики узнают о новой статье, если на сайте она нигде видна не будет. Многие вебмастера создают и используют карту сайта, ссылку на которую прописывают в файле robots.txt и\или добавляют в сервисы для вебмастеров, которые предлагают сами поисковые системы. В карте сайта ссылка на «скрытую» статью будет прописана, благодаря чему поисковые системы проиндексируют материал.
Штатно WordPress не позволяет это сделать – статью можно либо скрыть полностью с сайта (она не будет доступна никому), либо разрешить её просмотр только после ввода пароля. Но в нашем случае этого явно недостаточно.
Содержание:
Скрываем запись в WordPress с помощью кода
При использовании кода, который вписывается в файл functions.php используемой вами темы, можно быстро скрыть запись с главной страницы, из категории и RSS ленты.
function exc_post($query) { if ($query->is_category || ($query->is_home || ($query->is_feed))) {$query->set('post__not_in', array(381, 390) );} // в скобочках id поста (записи) return $query; } add_filter('pre_get_posts','exc_post');
Впишите в файл functions.php (перед изменением не забудьте сделать резервную копию) приведённый код. В приведённом примере скрываются записи под номером 381, 390. В вашем случае, естественно, номера записей и их количество может и, скорее всего, будет другим.
Узнать номер записи, под которым идёт та или иная статья, предельно просто. Для этого необходимо в админ панель перейти в раздел Записи и либо навести курсор и подчеркнуть номер в отобразившейся ссылке-подсказке, либо открыть статью на редактирование и увидеть номер в адресной строке.
Особо радует, что этот короткий код не влияет на скорость сайта и полностью выполняет возложенные на него обязанности. Однако если вам приходится часто скрывать\отображать страницы, то удобным решением станет использование плагина.
Скрытие записи в WordPress с помощью плагина
Удивительно, но в официальном репозитории плагинов WordPress жуткий дефицит решений, реализующий данный функционал. Из немногочисленных достойных и время от времени обновляющихся можно отметить плагин WordPress Hide Posts.
Установив оный плагин. Включив его, на странице редактирования записи появится новый блок, в котором и происходит управление скрытием записи.
Можно отметить скрытие сразу отовсюду, а можно выборочно, а именно:
- SELECT ALL – сразу отовсюду
- Hide on frontpage – из списка с главной страницы
- Hide on categories – из категорий
- Hide on search – из результатов локального поиска по сайту
- Hide on tags page – со страниц тегов
- Hide on authors page – со страницы списка статей автора
- Hide on date archive – из архивов по датам
- Hide in RSS Feed – из RSS ленты
- Hide on blog page (The POSTS PAGE that is selected in Settings -> Reading) – со страницы записей (данная страница отображается только тогда, когда включена в Настройка -> Чтение)
- Hide from post navigation – скрывает ссылку на запись в html тегах rel="next" и rel="prev"
Плагин также может скрывать и страницы, однако по умолчанию данная возможность отключена и включается в настройках плагина.
Ну вот, собственно, и всё, что я хотел вам поведать в данном материале. Если у вас вопросы, немедля излагайте их в комментариях к материалу! :-)