Вконтакте
Телефон для заказов: +7 (910) 487 81 94
Подписка на RSS

Используем условные теги WordPress

Иногда бывает так, что необходимо вставить в шаблоне некоторые элементы только на определённые страницы блога. Если речь идёт о WordPress, то для этого отлично подойдут так называемые условные теги (Conditional Tags).

Сегодня хотелось бы рассмотреть некоторые из них на реальных примерах. Если же вы не найдёте здесь то, что искали, смело спрашивайте в комментариях, но в принципе использование всех тегов очень похоже.

Начнём, пожалуй, с самого часто используемого мной тега. Попробуйте зайти на главную страницу блога и нажать на импровизированный логотип — это вас никуда не приведёт, но если перейти на любую другую страницу — в том месте будет ссылка на главную.

Это достигается с помощью условного тега is_home(), благодаря которому можно определить, открыта ли главная страница или нет, и выстроить соответствующим образом необходимое условие.

Чтобы сделать ссылку везде, кроме главной, я вставил в свой шаблон следующий код:

<?php if (!is_home()) { ?><a href="<?php echo get_option('home'); ?>/"></a><?php }; ?>

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

Можно также сделать условие с разными вариантами. Для главной страницы покажем, например, текст «Это главная страница», а для остальных — «Это внутренняя страница». Выглядеть это будет так:

<?php if (is_home()) { ?>Это главная страница<?php } else {?>Это внутренняя страница<?php }; ?>

Чтобы попробовать ещё что-нибудь, давайте усложним задачу и разобьём наше всеобъемлющее else на что-нибудь более конкретное, например на страницы категорий, посты и просто страницы.

<?php if (is_home()) { ?>Это главная страница<?php } elseif (is_category()) {?>Это какая-нибудь категория<?php } elseif (is_single()) {?>Это пост<?php } elseif (is_page()) {?>Это обычная страница<?php } else {?>Это всё остальное<?php }; ?>

Можно ещё при желании вставить в условие id категории или записи, например:

<?php if (is_category('5')) {?>Это одна категория с id=5<?php }; ?>

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

<?php if (is_single(array(5,6,9))) {?>Это пост с id=5, 6 или 9<?php }; ?>

Как видите, всё это не сложно. С помощью подобных тегов можно решить немало задач, главное знать, что именно хочешь и выстроить правильную логику.

О том, как ещё с этим делом можно извратиться предлагаю почитать здесь — это часть официальной документации по WordPress, где представлены условные теги.

Выбирайте, пробуйте — уверен, у вас всё получится! А если что-то пойдёт не так, задавайте вопросы — вместе разберём вашу ситуацию.

Желаю вам всего самого безошибочного!
Seogad

Понравилась статья?

Создание блога под ключ всего за 999 рублей!

«Используем условные теги WordPress» — комментарии (12)

  • Часто начал писать, радует. За этот пост отдельное спасибо, как раз нужно на портале сделать вывод приветственного текста только для гостей и только на главной:)

  • А seogad.ru/page/2 и т.д. тоже почему-то считаются is_home, хоть по сути являются внутренними страницами

  • @Хайпер, WP определяет какой тип страницы показывается по основному запросу к БД, а страницы типа seogad.ru/page/2 — это один и тот же запрос, что к seogad.ru, только со смещением результатов вывода.
    В общем, чтобы определить только главную страницу нужно использовать условие:
    if( is_home() && !is_paged() )
    Объясняется как — если это главная и не страница пагинации.

  • О! спасиб) с твоей помощью я стал чуточку умнее)))

  • @Хайпер, потому что в шаблоне надо добавить проверку на по страничную разбивку is_paged() — эта функция не используется при разбивке постов и страниц…

  • Интересная задумка, будем пользоваться ;)

  • @Kama, большое спасибо за дополнение!

  • @Желнов Александр, большое спасибо за уточнение!

  • @Kama, @Желнов Александр, вот как раз этого и ожидал, что кто-нибудь дополнит. Спасибо

  • А чем обычные тэги отличаются от условных? Правда я с вордпрессом не очень хорошо дружу, но думаю у меня все впереди.

  • Полезная функция, спасибо! А как сделать так чтобы Н1 был только один на главной (название блога), а при отображении внутренней страницы поста Н1 становился названием поста, а название блога чем-то другим. И как на главной названия постов сделать в Н2, а при переходе на пост в Н1 ?

  • Спасибо, полезная вещь. Можно доработать и кое что придумать.

Ваш комментарий

Поля отмеченные * нужно в любом случае заполнить. Пожалуйста, воспринимайте буквально текст «Блог или профиль в соц. сети», не оставляйте ссылки на интернет-магазины, коммерческие сайты и страницы, на которых нельзя познакомиться с вами и вашей деятельностью - такое творчество будет удалено. Это dofollow блог.