Полное руководство по условным тегам WordPress

Условные теги WordPress – это отличная функция WordPress, которая позволяет вам контролировать, какой контент отображается на странице. Существуют условные теги для различных областей вашего сайта, таких как домашняя страница, записи в блогах и страницы. Это позволяет вам изменить то, что отображается вокруг вашего сайта. Например, вы можете изменить логотип вашего сайта в разных областях вашего сайта..


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

Как работают условные теги WordPress

Условные теги – это логический тип данных, который может возвращать только true или false. Тег is_home (), например, относится к индексу блога. Мы можем использовать этот тег для отображения сообщения посетителям нашего блога. Это сообщение не будет отображаться в другом месте.

Код прост. Все, что мы делаем ниже, это проверяем, является ли отображаемая страница индексной страницей блога. Если это так, мы показываем наше сообщение.

<?PHP

if (is_home ()) {

эхо "Добро пожаловать в наш блог!!";

}

?>

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

Прежде чем мы рассмотрим другие примеры использования условных тегов, давайте сначала рассмотрим популярные условные теги, которые вы, вероятно, увидите, используемые в ваших темах WordPress..

  • дома() – Проверяет, отображается ли индекс блога. Это может быть или не быть вашей домашней страницей.
  • is_front_page () – Проверяет, отображается ли ваша домашняя страница. Это работает независимо от того, настроены ли ваши параметры главной страницы для отображения сообщений в блоге (т. Е. Индекса блога) или статической страницы..
  • холост() – Проверяет, отображается ли какой-либо тип сообщения (кроме вложений)..
  • is_attachment () – Проверяет, отображается ли вложение.
  • is_page () – Проверяет, отображается ли страница.
  • is_singular () – Проверяет, отображается ли отдельное сообщение, вложение или страница. Истина возвращается, если любое из этих условий выполнено.
  • is_category () – Проверяет, отображается ли страница архива категории.
  • is_search () – Проверяет, отображается ли страница результатов поиска.
  • is_tag () – Проверяет, отображается ли архив тегов.
  • is_author () – Проверяет, отображается ли страница архива автора.
  • is_archive () – Проверяет, отображается ли какой-либо тип страницы архива, включая архивы категории, тега, даты и автора.
  • is_sticky () – Проверяет, был ли пост определен как липкий.
  • is_multi_author () – Проверяет, опубликовали ли более одного автора сообщения на сайте. Значение true возвращается, если два или более человек опубликовали сообщения. Если только один автор опубликовал сообщения или вообще не было опубликовано ни одного сообщения, возвращается false.

Существует шесть условных тегов, основанных на времени, которые вы также найдете полезными. Эти теги относятся к страницам архива даты. Например, URL http://www.yourwebsite.com/2013/12/ является страницей архива на основе месяца..

Если какой-либо из следующих условных тегов возвращает true, is_archive () также будет true.

  • is_date () – Проверяет, является ли страница архивом на основе даты.
  • is_year () – Проверяет, если это годовая страница архива.
  • is_month () – Проверяет, является ли страница архивом за месяц.
  • is_day () – Проверяет, является ли это дневной архивной страницей.
  • is_time () – Проверяет, является ли страница архивом на основе времени.
  • is_new_day () – Проверяет, если сегодня новый день. Если текущее сообщение было опубликовано в другой день по сравнению с предыдущим опубликованным сообщением, оно вернет true. Ложь будет возвращена, если обе записи были опубликованы в один и тот же день..

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

Примеры условных тегов

Многие условные теги позволяют передавать параметры в функцию. Это дает вам гораздо больший контроль над тем, какие условия должны быть выполнены, прежде чем что-то предпринимать. is_page () является хорошим примером этого. Тег позволяет проверить, является ли отображаемая страница страницей. is_page () вернет значение true, если какая-либо страница отображается, однако вам нужно указать параметр $ page, если вы хотите быть более конкретным. Параметр $ page может быть идентификатором страницы, заголовком страницы или слагом страницы..

Давайте рассмотрим обычный веб-сайт, на котором есть страница «О программе», и вы хотите настроить страницу «О программе» иначе, чем все остальные страницы. Например, вы можете отобразить фотографию вашей компании в верхней части боковой панели, или вы можете отобразить дополнительную информацию в нижней части страницы о компании..

Для этого вам нужно определить параметр $ page. Если бы ID страницы был 10, вы могли бы открыть свой условный оператор примерно так:

if (is_page (10)) {

Определенную страницу также можно указать, передав заголовок страницы функции.

if (is_page (‘About Us’)) {

Слаг страницы также может быть использован. Как вы помните, слаг страницы – это уникальный именованный идентификатор в конце URL. Если URL-адрес вашей страницы о веб-сайте был www.yourwebsite.com/about-our-company/, слаг страницы будет о нашей компании.

if (is_page (‘about-our-company’)) {

Некоторые условные теги, такие как is_page (), также могут передавать параметры в массиве. Следующий условный оператор вернет значение true, если любое из условий выполнено.

if (is_page (array (10, ‘About Us’, ‘about-our-company’))) {

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

Они могут сделать это, используя условные теги is_home () и is_single (); которые представляют индекс блога и отдельные сообщения соответственно. Чтобы отобразить сообщение в обеих областях, вам нужно использовать логический оператор ИЛИ ||. Это показано в коде ниже. Первоначальный оператор if проверяет, является ли страница индексом блога или отдельным постом. Если любое из них истинно, отображается сообщение.

<?PHP

if (is_home () || is_single ()) {

эхо "Добро пожаловать в наш блог!!";

}

?>

Еще один очень полезный логический оператор – оператор AND &&. Это используется, когда вы хотите, чтобы два или более условия были выполнены, прежде чем что-то предпринять. Следующий оператор if проверяет, является ли страница страницей архива и относится ли она к категории новостей. На страницах категории новостей будет отображаться приветственное сообщение. Ничто не будет отображаться в других категориях.

<?PHP

if (is_archive () && is_category (‘News’)) {

эхо "Добро пожаловать в архив новостей";

}

?>

И и ИЛИ операторы могут быть объединены. Пример ниже взят из шаблона functions.php стандартной темы WordPress Twenty Thirteen. Эта функция используется для отображения заголовка страницы в браузере, однако ниже показана только часть функции..

Оператор if возвращает значение true, если есть описание сайта и пользователь просматривает индекс блога или домашнюю страницу. Описание сайта можно ввести через поле tagline в вашей области общих настроек. Если вы заполните это поле, на указателе блога и домашней странице в строке заголовка отобразится «Заголовок сайта | Описание сайта »(примечание: разделитель отображается с использованием строки $ sep в приведенном ниже коде). Если вы этого не сделаете, в строке заголовка будет отображаться «Название сайта».

Как вы можете видеть, is_home и _is_front_page рассматриваются как одна сущность благодаря оператору OR. Вот почему они заключены в скобки.

если ($ site_description && (is_home () || is_front_page ()))
$ title = "$ title $ sep $ site_description";

Другой логический оператор PHP, который вы можете использовать, это оператор not! Это более практично для использования во многих обстоятельствах. Например, допустим, вы хотите разместить фотографию на всех своих страницах, кроме своих архивов. Нет необходимости настраивать длинное условное утверждение, которое спрашивает: «Это домашняя страница, это отдельный пост, это страница…». Более практично просто спросить «Разве это не страница архива?».

Для этого просто добавьте восклицательный знак перед условным тегом. Код ниже показывает, насколько это просто на практике. Он будет отображать изображение на каждой странице вашего сайта, кроме страниц архива.

<?PHP

if (! is_archive ()) { ?>

<?PHP

}

?>

До сих пор мы рассматривали основные примеры использования условных тегов, когда что-то либо действует, либо не выполняется (то есть, если A истинно, делайте B). На практике обычно есть другое действие, если условие не выполняется. Кроме того, может быть несколько условий, которые могут быть выполнены с различным ответом на каждое.

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

Мы можем показать это на примере. Допустим, вы хотите, чтобы на вашем сайте отображался другой логотип в разных областях вашего сайта. Как бы вы это сделали? Ответ прост: мы используем операторы else и elseif. Код ниже показывает, как этого можно достичь.

<?PHP

if (is_home () || is_front_page ()) { ?>

<?PHP

} elseif (is_category ()) { ?>

<?PHP

} elseif (is_single ()) { ?>

<?PHP

} elseif (is_page ()) { ?>

<?PHP

}

еще { ?>

<?PHP

}

?>

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

Заявления Elseif также используются в других частях WordPress. Большинство шаблонов functions.php используют их, а многие темы WordPress используют их, чтобы изменить способ отображения заголовка своего веб-сайта в браузерах..

Более условные теги

Доступно несколько дополнительных условных тегов. Многие из них используются разработчиками в темах и плагинах.

Ниже приведен список некоторых других доступных вам условных тегов..

  • is_tax () – Проверяет, отображается ли страница архива пользовательских таксономий.
  • has_term () – Проверяет, имеет ли текущее сообщение одно из указанных условий.
  • taxonomy_exists () – Проверяет, существует ли название таксономии.
  • post_type_exists () – Проверяет, существует ли тип сообщения.
  • is_post_type_hierarchical ($ post_type) – Проверяет, является ли тип сообщения иерархическим.
  • is_post_type_archive () – Проверяет, отображается ли страница архива определенного типа.
  • is_comments_popup () – Проверяет, открыто ли всплывающее окно комментариев.
  • comments_open () – Проверяет, разрешены ли комментарии для текущего сообщения или страницы.
  • pings_open () – Проверяет, разрешены ли пинг для текущего сообщения или страницы.
  • is_feed () – Проверяет, является ли текущий запрос фидом.
  • is_404 () – Проверяет, отображается ли ошибка 404.
  • is_paged () – Проверяет, является ли страница, которую вы просматриваете в данный момент, страницей, отличной от первой страницы. Посты и страницы разбиваются на страницы, когда вы используете ярлык на следующей странице в своем контенте для разделения больших постов..
  • is_trackback () – Проверяет, используется ли трекбек.
  • is_admin () – Проверяет, вошел ли пользователь в зону администратора. Он не используется для проверки наличия у пользователя прав администратора, только для того, чтобы войти в него на панели инструментов WordPress..
  • is_page_template () – Проверяет, использует ли просматриваемая страница шаблон страницы. При необходимости можно определить конкретный шаблон страницы..
  • is_preview () – Проверяет, просматривается ли запись блога в черновом режиме.
  • has_excerpt () – Проверяет, есть ли в текущем сообщении выдержка. Конкретные сообщения могут быть определены.
  • has_nav_menu () – Проверяет, имеет ли место меню назначенное меню. Это используется разработчиками темы, чтобы показать что-то в том случае, если пользователь не добавил меню.
  • в петле() – Проверяет, находится ли звонящий в цикле WordPress.
  • is_active_sidebar ($ index) – Проверяет, используется ли данная боковая панель.
  • is_multisite () – Проверяет, поддерживается ли мультисайт.
  • is_main_site () – Проверяет, является ли мультисайт основным сайтом в сети.
  • is_super_admin () – Проверяет, является ли пользователь супер-администратором в сети.
  • is_plugin_active ($ плагин) – Проверяет, активирован ли плагин.
  • is_child_theme () – Проверяет, используется ли дочерняя тема.
  • current_theme_supports (функция $) – Проверяет, поддерживает ли тема определенную функцию, такую ​​как форматы записей или избранные изображения.

Также проверьте: Как удалить стандартные таксономии.

Условные теги являются важной концепцией WordPress. Из-за того, насколько они полезны, есть несколько тем WordPress, которые разработаны без них. Когда вы понимаете операторы else, elseif и логические операторы, такие как AND, OR и Not; вы сможете справиться с любой условной функцией.

Я надеюсь, что это руководство помогло вам научиться использовать условные теги WordPress в ваших темах..

Если вам понравилась эта статья, тогда присоединяйтесь к ThemeLab на щебет.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me