Данная статья посвящена различным условиям вывода WP в зависимости от места нахождения на сайте (запись, страница, категория и т.д.).
Условия вывода
Вставляем в header
<?php if ( in_category( 'otparivateli' )) { echo'1-ый телефон'; } elseif ( is_category( '31' )) { echo '2-ой телефон'; } elseif ( is_page( '31' )) { echo '3-ий телефон'; } elseif ( is_home()) { echo '4-ый телефон'; } else { echo '5-ый телефон'; } ?>
Альтернативный код, выводим баннер на всех страницах кроме главной, либо кроме категории «Стать представителем»
<?php if ( in_category( 'stat-predstavitelem' ) || is_front_page() ): ?> <?php else: ?> <div id="banner"><a href="http://avonpredstaviteli.ru/category/stat-predstavitelem/"><img src="http://avonpredstaviteli.ru/wp-content/uploads/2016/03/stat-predstavitelem.jpg"></a></div> <?php endif; ?>
|| — это означает или
Пояснения к is/in category
Если мы пишем in_category, то имеется в виду шаблон категории и все записи относящие к этой категории, !НО без подкатегорий с записями. Если нужно сделать условие и к подкатегориям с записями, нужно прописывать и их в массив:
<?php if ( in_category( array( 4, 21, 22 ) )): ?>
(4-категория, 21/22-подкатегории).
Если мы пишем is_category, то имеется в виду шаблон самой категории, без записей относящие к этой категории.
Писать можно либо номер категории (без кавычек), либо slug (с одинарными кавычками).
Другие варианты условий
is_single
is_page (единственная страница)
is_paged (несколько страниц через запятую)
is_author
is_category
is_tag
is_home (домашняя страница)
is_404
is_home() — это когда в настройках чтения Главная страница выбрана как «Последние записи»
is_front_page() — это когда в настройках чтения Главная страница выбрана как «Страница»
Еще нюанс: если в шаблоне index есть вывод последних записей, даже при том, что этот шаблон назначен Главной в виде страницы то это is_home(). А если убрать вывод последних записей, то он становиться is_front_page().
Если на Главной выводятся какие-либо произвольные выборки постов (query_posts), то необходимо в конце обнулять эти запросы wp_reset_query(); Если этого не сделать ломаются запросы is_front_page (по крайней мере в плагинах).
Если определенная запись
if ( is_single() ) — если запись (любая)
if ( is_single(2578) ) — если запись с ID 2578
if ( is_single( array(‘11717’, ‘11723’) ) ) — если одна из нескольких записей