У цій серії статей ми знайомимося з однією з чудових особливостей WordPress: умовними позначками. У цій частині, ми будемо продовжувати поглиблюватися і розглянемо нові умовні позначки. Для більш ясного розуміння теми рекомендую ознайомитися з попередніми частинами даної серії.

27. Перевірка, чи є сторінка «щомісячним архівом»: is_month()

В WordPress «щомісячний архів» один з найбільш часто використовуваних типів архівних сторінок. Якщо вам потрібно визначити, запущений ваш код на сторінці з типом «щомісячний архів», умовний тег is_month() допоможе вам у цьому.

Допустимі параметри

Цей умовний тег не використовує параметрів.

28. Перевірка можливостей теми: current_theme_supports()

У процесі розробки плагінів вам може знадобитися визначити, чи підтримує обрана тема іконки, віджети, який тип записів використовує, є в ній власні заголовки чи ні. Все це можна зробити з допомогою умовного тега current_theme_supports().

Допустимі параметри

У цього умовного тега тільки один параметр:

  • $feature (тип «string», необов’язковий): Ім’я характеристики теми. Значення за замовчуванням немає.

Прийняті значення:

  • ‘post-thumbnails’;
  • ‘post-formats’;
  • ‘custom-header’;
  • ‘custom-background’;
  • ‘menus’;
  • ‘automatic-feed-links’;
  • ‘editor-style’;
  • ‘widgets’;
  • ‘html5’.

Приклад використання умовного тега current_theme_supports()

Припустимо, що ви розробляєте плагін для WordPress, які підтримують можливість установки користувальницьких фонів. Ваш плагін не буде працювати в темах, які не підтримують власні фони, і вам потрібно буде відобразити повідомлення про помилку в панелі адміністрування.

Ось як можна це зробити:

‘. __( ‘Цей плагін підтримує теми з можливістю установки
користувацьких фонових зображень.’, ‘translation-domain’ ) . ‘

‘;
}
}
?>

29. Перевіряємо, чи зазначений плагін: is_plugin_active()

Працюючи тільки в панелі адміністрування, умовний тег is_plugin_active() допомагає дізнатися, активний чи ні певний плагін. Цей тег допоможе у випадках, якщо ви пишіть доповнення до популярних плагінів (наприклад, до WooCommerce) або під фреймворки, що встановлюються за допомогою розширень (як Redux Framework).

Допустимі параметри

У цього умовного тега тільки один параметр:

  • $plugin (тип «string», обов’язковий): Ім’я плагіна або директорії. Значення за замовчуванням немає.

30. Перевіряємо, вказує URL на локальне вкладення: is_local_attachment()

Вкладення в WordPress — відмінне рішення в разі їх правильного використання, але як дізнатися, вказує чи URL на локальне вкладення? Якщо в процесі розробки ви працюєте з посиланнями, умовний тег is_local_attachment() може бути дуже корисний: він перевіряє, вказує даний URL на локальне вкладення чи ні.

Допустимі параметри

У цього умовного тега тільки один параметр:

  • $url (тип «string», обов’язковий): URL для перевірки. Значення за замовчуванням немає.

Приклад використання умовного тега is_local_attachment()

Уявіть, що ви розробляєте плагін і вам потрібно перевірити посилання (які згенеровані створеної вами функцією) на предмет локальності вкладень:

31. Перевірка, здійснюється висновок поста з часу його публікації: is_time()

Ви знаєте про те, що до складу WordPress входить тип архівних сторінок, заснованих на час і дату їх створення: місяцях, годинах, хвилинах і навіть секундах?

Це не означає, що можна отримати архівні записи за 18:30 22 лютого 2014 року, але ви можете створити подібні записи з допомогою класу WP_Query. Якщо потрібно перевірити запис на приналежність до архіву, створеного на тимчасовій основі, використовуйте умовний тег is_time().

Допустимі параметри

Цей тег не підтримує параметри.

32. Перевіряємо поточну локаль на приналежність до RTL: is_rtl()

У деяких країнах (переважно це країни Середнього Сходу) текст пишеться справа наліво. Як WordPress розробнику, вам потрібно враховувати потреби всіх користувачів вашої системи. Якщо ви хочете, щоб ваш плагін або тема коректно працювали з RTL (right to left, справа наліво) текстом, слід використовувати is_rtl() для визначення, чи належить локаль до RTL.

Допустимі параметри

Цей умовний тег не використовує параметрів.

Приклад використання умовного тега is_rtl()

Більшість веб — дизайнерів створюють окремі css – стилі для RTL локалей. Це звичайна практика.

І якщо ви хочете завантажувати стилі для RTL за умовою, ось код, за допомогою якого це можна реалізувати:

33. Перевірка, чи є сторінка архівної з користувацької таксономією: is_tax()

Умовний тег is_tag() може визначати висновок архівної сторінки по мітці, але не може визначати власну таксономію. Для цього використовуйте умовний тег is_tax(). За замовчуванням, він визначає всі архівні сторінки з таксономією. Але у тега є два параметри, за допомогою яких ви можете відсіяти непотрібні архівні сторінки.

Допустимі параметри

Умовний тег може використовувати два параметра:

  • $taxonomy (тип «array/string», необов’язковий): slug таксономії або масив елементів. Значення за замовчуванням немає;
  • $term (тип “array/string/integer», необов’язковий): ID умови, імені, slug або масив цих даних. Значення за замовчуванням немає.

34. Перевірка, чи є дана сторінка вкладенням: is_attachment()

Під час створення плагіна (або теми) вам може знадобитися дізнатися, зараз відображається сторінка вкладення чи ні. Умовний тег is_attachment() допоможе у вирішенні цього завдання: він повертає значення TRUE на сторінці вкладенні і значення FALSE на інших сторінках.

Допустимі значення

Цей умовний тег не використовує параметрів.

Приклад використання тегу is_attachment()

Припустимо, ви хочете показати посилання «Назад до запису» над вкладенням.

Ось як це робиться:

35. Перевіряємо, чи є зазначений елемент таксономії: term_exists()

Умовний тег term_exists() перевіряє, чи є зазначений елемент таксономії, і повертає ID значення (якщо не визначено параметр $taxonomy) або ж масив ідентифікаторів таксономії. Якщо запитувана значення не існує, то повертається 0 або NULL.

Допустимі параметри

Цей умовний тег може використовувати три параметра:

  • $term (тип string/integer», обов’язковий): Ім’я або ID значення. Значення за замовчуванням немає;
  • $taxonomy (тип «string», необов’язковий): Ім’я таксономії. Значення за замовчуванням: »;
  • $parent (тип «integer», необов’язковий): ID батьківської таксономії (щоб обмежити пошук). Значення за замовчуванням: 0.

36. Перевіряємо наявність позначок у запису: has_term()

Ми можемо використовувати умовний тег has_tag(), якщо хочемо знайти тег запису. А що якщо нам потрібно зробити те ж саме, тільки зі значенням користувача таксономії? Умовний тег has_term() дозволяє використовувати третій параметр, який визначає потрібне значення користувальницької таксономії.

Кумедний факт: Умовний тег has_tag() використовує тег has_term(), щоб повернути значення TRUE або FALSE! І так само, як і функція has_tag(), тег has_term() дозволяє визначати більш ніж одне значення, але тільки для однієї таксономії.

Допустимі параметри

Цей умовний тег може використовувати три параметра:

  • $term (тип «array/string/integer», необов’язковий): Ім’я, ID, slug значення або ж масив цих даних. Значення за замовчуванням: »;
  • $taxonomy (тип «string», обов’язковий): Ім’я таксономії. Значення за замовчуванням: »;
  • $post (тип «object/integer», необов’язковий): Запис на перевірку. Типове значення NULL.

Приклад використання умовного тега has_term()

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

Код нижче дозволить зробити це:

37. Перевіряємо, чи є коментар трэкбэком: is_trackback()

Якщо хочеш перевірити коментар на трэкбэк, то для цього варто використовувати умовний тег is_trackback().

Допустимі параметри

Цей тег не використовує параметрів.

38. Перевіряємо, чи використовує WordPress мультисайтовую інсталяцію: is_multisite()

Якщо вам потрібно запускати код в звичайній версії WordPress в нормальному режимі, а в мультисайтовой версії змінити його поведінку, то умовний тег is_multisite() допоможе вам визначити, чи включена її підтримка.

Допустимі параметри

Цей тег не використовує параметрів.

Приклад використання умовного тега is_multisite()

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

39. Перевіряємо, чи виводиться на сторінці архіву довільний тип запису: is_post_type_archive()

Іноді вам потрібно, щоб ваш код визначав, чи зараз архівна сторінка користувальницького типу. Умовний тег is_post_type_archive() робить наступне: він перевіряє, чи надсилається запит на архівну сторінку користувальницького типу.

Допустимі параметри

У цього умовного тега тільки один параметр:

  • $post_types (тип «array/string», необов’язковий): Ім’я або масив цих даних. Значення за замовчуванням немає.

Висновок

У цій частині ми розглянули наступні кілька тегів з тих 65, які вказані в офіційній документації до WordPress. У наступній статті ми вивчимо залишилися 26 тегів. Якщо у вас виникли питання або ви хочете залишити коментар – зробіть це у формі нижче. А якщо ця стаття вам сподобалася – не забудьте їй поділитися!

До зустрічі в наступній частині.

Переклад статті «A Walkthrough on Conditional Tags in WordPress: 27 to 39» був підготовлений дружною командою проекту Сайтостроение від А до Я.