Умовні теги у WordPress

У цій статті я постараюся зрозуміло пояснити що таке «умовні теги в WordPress» (Conditional Tags). Повний список умовних тегів дивіться на цій сторінці .

Умовні теги так називаються, тому що, сюрприз-сюрприз, перевіряють чи виконується якась умова. Насправді умовні теги — це допоміжні PHP функції WordPress. А називають їх «тегами», щоб виділити з-поміж інших PHP функцій.

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

Характеристики умовних тегів у WordPress:

  • Кожен із тегів створений для перевірки певної умови . Грубо кажучи будь-яку функцію, що починається з is_можна назвати умовним тегом.

  • Деякі умовні теги можуть приймати параметри . Наприклад, is_page( 20 ) – перевіряє ID поточної сторінки. Якщо ID дорівнює 20, то умова виконується (тег спрацьовує).

  • Будь-який умовний тег повертає логічне значення : true чи false (правда чи брехня). На основі цієї відповіді можна щось робити чи не робити.

З умовними тегами дуже тісно пов’язана ієрархія файлів теми .

ВАЖЛИВО: не можна використовувати теги до спрацювання хука wp , тому що до цього хука ще немає даних для правильної роботи умовних тегів (не заповнені глобальні змінні, якими користуються умовні теги).

Таким чином, умовний тег не буде працювати, якщо використовувати його в тілі файлу теми functions.php тому що цей файл підключається раніше ніж спрацьовує хук wp . Зазвичай, умовні теги у файлі functions.php використовуються всередині інших функцій або хуків.

Приклад використання Умовних тегів

Припустимо, нам потрібно вивести посилання в підвалі і зробити це потрібно тільки на головній сторінці сайту. Для цього в WordPress є умовний тег is_home() . Ці функції повернуть true, лише в тому випадку, якщо сторінка, на якій знаходиться відвідувач, – це головна сторінка. У коді це виглядає так:

<?php
if( is_front_page() ){
	echo '<a href="http://example.com">Текст посилання</a>';
}
?>

Замість HTML може бути код PHP, який буде виконуватися тільки на головній сторінці. Замість is_front_page() може бути is_home() . Це схожі умовні теги, різницю дивіться нижче.

Список Умовних тегів WordPress

Найповніший список умовних тегів дивіться за цим посиланням .