Сегодня поговорим о том как вывести отдельный блок, текст или ссылку только на определенной странице или страницах. Это довольно частое явление которое встречается при разработке, доработке сайта сайта на WordPress.

Итак с этой статьи мы научимся добавлять скрывать блоки на страницах, начнем с главной страницы сайта.

Как вывести блок только на главной странице сайта

Все довольно просто, как и большинство решений в WordPress, для этого есть специальные встроенные функции is_home () и is_front_page(). Сейчас полетят камни в мою сторону мол это не функции, а операторы. Раз вы это знаете хорошо, но для большинства пользователей кто ищет эту информацию функция будет понятно.

Итак, само использование. Если вам нужно вывести блок только на главной в нужном месте вставляем следующий код:

<?php  if (is_home() ) {     echo('Текст');   } ?>

Это простейшее решение, рассмотрим более сложные конструкции. Очень часто только на главной нужно вывести ссылку на карту сайта, это некий подход в SEO, для ускорения индексации страниц и распределения веса страниц, но сейчас не о том. Выводим ссылку на карту сайта в подвале, только на главной странице сайта:

<?php  if (is_home() ) { ?>     <a href="#">Карта сайта</a>  <?php } ?>

Как видим мы немного изменили код, который был выше, мы вывели ссылку без использования «echo», почему именно так? Потому что так тяжелее сделать синтаксическую ошибку в PHP. Опять же, стараюсь показать простейший вариант для новичков.

А теперь пойдем от обратного выведем блок на всех страницах сайта кроме главной:

<?php  if (!is_home() ) { ?>     <div class="offhome"><a href="#">Карта сайта</a></div>  <?php } ?>

К условному оператору is_home мы добавили «!». Как читается строчка в таком случае: «Если главная не показываем, показываем на всех страницах кроме главной».

Теперь немного усложним, и выведем блок только на «главной странице», на странице «контактов» и на странице»о компании». К примеру это может быть какая то контактная информация. Для этого нам нужно знать id страниц.

<?php  if ((is_home()) and (is_page('10')) and (is_page('15'))) { ?>     <p>Номер телефона: Адрес:</p>  <?php } ?>

Как и планировались мы вывели информацию только на трех страницах. Как видим в игру вступил еще один условный оператор is_page() — если страница, важно понимать что это относится только для страниц, НЕ к записям. Для записей есть свой is_single ().

В скобках мы можем указать ID, заголовок, или слаг. Так же что бы исключить конкретные страницы или записи вставляем в начало «!» как в случае с ( !is_home()) примера выше!

Для исключения или добавления показа на страницах категорий или меток используют is_category () и is_tag (), правила такие же ка и для остальных условий.

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