Сегодня поговорим о том как вывести отдельный блок, текст или ссылку только на определенной странице или страницах. Это довольно частое явление которое встречается при разработке, доработке сайта сайта на 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 (), правила такие же ка и для остальных условий.
Вы можете использовать все это на свое усмотрение и под свои нужды, это только примеры, условия бывают самые разнообразные, если вам нужна конкретное условие и вы не знаете как его прописать, задайте свой вопрос в комментарии и я постараюсь вам помочь.
а как вывести отдельные три адаптированных блока в одной записи (после основного текста).
Добавить получается как три колонки и с описанием, фото
Добрый день! Столкнулась с такой проблемой, не могу вывести блок на главную страницу.
Здравствуйте. А куда вставлять эту функцию?
Приветствую, в файл functions.php – можно из админки перейти во “Внешний вид” / “Редактор тем”, и там будет данный файл. Функцию добавляйте в самом низу.