Руководство по условным тегам WordPress: Теги с 53 по 65

В данной серии статей мы рассматриваем один из основных элементов WordPress — условные теги. В данной части мы завершим описание оставшихся условных тегов. Не забудьте ознакомиться с предыдущими статьями данной серии.

53. Проверка, выводится ли в данный момент страница указанного типа: is_singular()

Это один из моих любимых условных тегов. is_singular() определяет, выводится ли в данный момент запись указанного типа. По сути, это сочетание трех условных тегов is_single(), is_attachment() и is_page(). Кроме этого, если вы зададите в виде параметры тип записей(или массив типов записей), вы можете определять только те типы, которые вам нужны.

Принимаемые настройки

Этот условный тег принимает только один настройка:

  • $post_types(array/string, необязательный): Название типа записей или массив названий типов записей. Значения по умолчанию нет.

54. Проверка, работает ли функцию в «Цикле»: in_the_loop()

Если я скажу, что цикл будет базовым элементом кода WordPress, мало кто со мной не согласится. Условный тег in_the_loop() будет одним из ключевых, так как может возможностям определять, работают ли они внутри цикла или нет.

Принимаемые настройки

Этот условный тег не принимает никаких настроек.

Пример применения in_the_loop()

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

<?phpfunction my_awesome_plugin_function() { if(! in_the_loop()) { echo '<!-- '. __( 'We're terribly sorry, but the', 'translation-domain'). ' <code>my_awesome_plugin_function()</code> '. __( 'function of the plugin "My Awesome Plugin" must run inside WordPress Loops!', 'translation-domain'). ' -->'; } else { // Запуск этого кода, так как мы находимся внутри цикла! }}?>

55. Проверка, будет ли указанный плагин неактивным: is_plugin_inactive()

В кодексе он определяется как противоположный условному тегу is_plugin_active(). Тег is_plugin_inactive() определяет, когда установленный плагин не активирован.

Принимаемые настройки

Этот условный тег принимает только один настройка:

  • $plugin(string, обязательный): плагин или имя папки плагина. Значения по умолчанию нет.

56. Проверка, выводится ли теперь страница из «архива автора»: is_author()

При разработке плагина(или темы), вам может потребоваться определить, когда выводится страница автора. Условный тег is_author() поможет вам в этом: он возвращает TRUE, если в данный момент выводится страница автора, и FALSE — в противоположном случае.

Принимаемые настройки

Этот условный тег принимает только один настройка:

  • $author(string/integer, необязательный): Имя посетителя или ID автора. Значения по умолчанию нет.

Пример использования is_author()

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

<script>/* JavaScript-код, связанный с Google Analytics. */<?phpif( is_author()) { echo '_gaq.push( [ "_setCustomVar", 1, "'. __( 'Author Archives', 'translation-domain'). '", "'. esc_attr( get_query_var( 'author_name')). '" ]);' . "n";}?>_gaq.push( [ "_trackPageview" ] );</script>

57. Проверяем, находимся ли мы на странице пагинации: is_paged()

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

Принимаемые настройки

Этот условный тег не принимает никаких настроек.

58. Проверка, выводится ли в данный момент панель инструментов WordPress: is_admin_bar_showing()

Панель инструментов WordPress , которая в более ранних версиях называлась панелью администрирования, в сообществе WordPress воспринимается и как полезная, и как назойливая. Некоторым она нравится, некоторые ее ненавидят. Условный тег is_admin_bar_showing() может быть полезен как для первых, так и для вторых: он определяет, выводится ли в данный момент панель инструментов или нет.

Принимаемые настройки

Этот условный тег не принимает никаких настроек.

Пример применения is_admin_bar_showing()

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

<?phpadd_action( 'wp_enqueue_scripts', 'mytheme_admin_bar_styles' );function mytheme_admin_bar_styles() {    if ( is_admin_bar_showing() ) {        wp_enqueue_style( 'mytheme-admin-bar', 'path/to/your/admin-bar.css' );    }}?>

59. Проверка, будет ли текущая страница архивом записей за день: is_day()

Архивы по дням один из самых редко используемых типов архивов по дате. Но некоторые темы могут содержать разные шаблоны для архивов по дням. Поэтому, если вам необходимо определить страницу с архивом записей за день, вы можете легко использовать условный тег is_day() .

Принимаемые настройки

Это условный тег не принимает никаких настроек.

60. Проверка, подключен ли в данный момент заданный сайдбар: is_active_sidebar()

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

Принимаемые настройки

Этот условный тег принимает только один настройка:

  • $sidebar (string/integer, обязательный): ID или название сайдбара. Значения по умолчанию нет.

Пример использования is_active_sidebar()

Этот пример взят из темы Twenty Ten : в нем данный условный тег используется для загрузки указанного сайдбара при определенных условиях:

<?phpif ( is_active_sidebar( 'secondary-widget-area' ) ) { ?>    <div id="secondary" class="widget-area" role="complementary">        <ul class="xoxo">            <?php dynamic_sidebar( 'secondary-widget-area' ); ?>        </ul>    </div> <!-- #secondary .widget-area --><?php } ?>

61. Проверка, существует ли заданное имя посетителя в системе ресурса: username_exists()

Третий условный тег, который возвращает не TRUE , а конкретное значение, это username_exists() . Этот условный тег проверяет заданное имя посетителя и возвращает его ID , если посетитель с таким именем существует. Если это не так, возвращается значение NULL .

Принимаемые настройки

Этот условный тег принимает только один настройка:

  • $username (string, обязательный): Имя посетителя для проверки. Значения по умолчанию нет.

62. Проверка, выводится ли в данный момент страница «предварительного просмотра записи»: is_preview()

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

Принимаемые настройки

Это условный тег не принимает никаких настроек.

Пример применения is_preview()

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

<?phpif ( ! is_preview() ) {    echo '<script>             <!-- Программный код Google Analytics. -->         </script>';}?>

63. Проверка состояния заданного скрипта: wp_script_is()

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

Принимаемые настройки

Этот условный тег принимает два параметры:

  • $handle (string, обязательный): Имя скрипта (в нижнем регистре). Значения по умолчанию нет;
  • $list (string, необязательный): одно из четырех возможных значений — «registered«, «enqueued«, «done» (поставлен в очередь и выведен) или «to_do» (поставлен в очередь, но ещё не выведен). Значение по умолчанию: «enqueued«.

64. Проверка состояния заданного стиля: wp_style_is()

Условный тег wp_script_is() выполняет проверку поставленных в очередь таблиц стилей. При помощи него можно проверить, зарегистрирован ли данный стиль, поставлен ли он в очередь загрузки, поставлен ли в очередь загрузки и выведен, поставлен ли в очередь загрузки, но ещё не выведен.

Принимаемые настройки

Это условный тег принимает два параметры:

  • $handle (string, обязательный): имя стиля (в нижнем регистре). Значения по умолчанию нет;
  • $list (string, необязательный): одно из четырех возможных значений — «registered«, «enqueued«, «done» (поставлен в очередь и выведен) или «to_do» (поставлен в очередь, но ещё не выведен). Значения по умолчанию: «enqueued«.

Пример применения wp_style_is()

Допустим, вы разрабатываете тему при помощи фреймворка Bootstrap и создали пользовательскую тему Bootstrap . Необходимо, чтобы основные CSS -файлы Bootstrap ставились в очередь загрузки первыми:

<?phpadd_action( 'wp_enqueue_scripts', 'bootstrap_styles' );function bootstrap_styles() {    if ( wp_style_is( 'bootstrap-main' ) ) {        wp_enqueue_style( 'my-custom-bootstrap-theme', 'path/to/custom-theme.css' );    }}?>

65. Проверка, будет ли таксономия иерархической: is_taxonomy_hierarchical()

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

Принимаемые настройки

Это условный тег принимает только один настройка:

  • $taxonomy (string, обязательный): название таксономии. Значения по умолчанию нет.

Заключение

В данной части мы рассмотрели последние 13 из 65 зарегистрированных в WordPress условных тегов. В следующей (последней) части данной серии статей мы подытожим то, что вы узнали.

Если у вас возникли какие-либо вопросы или комментарии, напишите нам. Если вам понравилась эта статья, не забудьте поделиться со друзьями ссылкой!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *