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

40. Перевіряємо, чи є даний блог «Головним сайтом» в Мережі: is_main_site()

Якщо ви розробляєте під мультисайтовый WordPress, то може знадобитися визначити головний сайт в мережі. Умовний тег is_main_site допоможе в цьому: він визначає це за даним ID сайту.

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

Цей умовний тег має всього один параметр:

  • $site_id (тип «integer», необов’язковий): ID сайту для перевірки. Значення за замовчуванням: ID поточного сайту.

41. Перевіряємо, додано меню в зазначену область теми: has_nav_menu()

При створенні інтерфейсу навігаційного меню, ви можете визначити місцезнаходження меню» з допомогою двох параметрів функції register_nav_menu(s). Умовний тег has_nav_menu() перевіряє, чи існує меню в певній галузі поточної теми.

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

Цей умовний тег допускає лише один параметр:

  • $location (тип «string», необов’язковий): slug розташування меню навігації. Значення за замовчуванням немає.

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

Припустимо, в певну частину меню навігації вашої теми ви хочете додати невеликий файл з JavaScript, але тільки в тому випадку, якщо відвідувач використовує це меню.

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

42. Перевіряємо, чи певний плагін в режимі роботи «мультисайт»: is_plugin_active_for_network()

Цей умовний тег схожий з тегом is_plugin_active(). Умовний тег is_plugin_active_for_network() визначає, чи буде активний плагін в режимі роботи «мультисайт». Це може виявитися корисним, коли необхідно визначити, чи працює плагін у всій мережі або тільки на одному сайті.

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

Цей умовний тег працює з одним параметром:

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

43. Перевіряємо, чи дозволені коментарі: comments_open()

Один з найбільш часто використовуваних умовних позначок — comments_open(). За допомогою нього в if конструкції, ви можете визначити, чи дозволені коментарі в потрібній вам запису.

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

Цей умовний тег використовує тільки один параметр:

  • $post_id (тип «integer», необов’язковий): ID запису. Значення за замовчуванням: 0.

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

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

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

44. Перевіряємо, чи містить бічна панель віджети: is_dynamic_sidebar()

Безліч тем WordPress використовують бічні панелі для відображення віджетів. Якщо ви розробляєте плагін для теми і хочете знайти невживані сайдбары, то можете зробити це за допомогою умовного тега is_dynamic_sidebar() — він визначає, чи сайдбар і чи є в ньому якісь віджети.

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

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

45. Перевіряємо, чи є в блозі більше ніж один автор: is_multi_author()

Більшість веб-сайтів на WordPress ведуться одним автором. Корпоративні сайти зазвичай не потребують більш ніж одному авторові, а інтернет рясніє «персональними» блогами. Але можливо вам знадобиться визначити, безліч авторів на сайті або один. У такому випадку вам допоможе умовний тег is_multi_author().

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

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

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

Уявімо, що ви розробляєте плагін для блогу з безліччю авторів, і хочете попередити, що версії блогів одним автором не підтримуються.

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

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

‘;
}
}
?>

46. Перевіряємо, чи працює на сервері з WordPress сервіс ping: pings_open()

Якщо ви досі використовуєте трекбекі, або ж якщо хочете забезпечити підтримку ваших плагіном дуже старих тем, то ви можете визначити включена підтримка трэкбэков і сервісу ping з допомогою умовного тега pings_open().

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

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

  • $post_id (тип «integer», необов’язковий): ID запису. Значення за замовчуванням: 0).

47. Перевіряємо, чи відображається RSS стрічка: is_feed()

Я досі вважаю RSS стрічки хорошим рішенням, але на сьогоднішній день це рішення вважається вже застарілим. Хоча WordPress все ще використовує його: він підтримує 4 різних типу RSS стрічок. Якщо ви хочете зробити так, щоб ваша функція визначала, запущена вона RSS стрічки, то умовний тег is_feed() допоможе перевірити, був зроблений запит для стрічки або ж ні.

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

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

  • $feeds (тип string/array», необов’язковий): Тип стрічки. Значення за замовчуванням немає.

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

Припустимо, що ви хочете публікувати будь – який вміст кожного запису RSS стрічки (для залучення більшого числа передплатників).

Вам знадобиться цей шорткод:

48. Перевіряємо запис на відповідність типу «Щорічний архів»: is_year()

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

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

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

49. Перевіряємо, користувач авторизувався в системі ресурсу: is_user_logged_in()

Це звичайна практика запускати код, призначений спеціально для зареєстрованих в системі користувачів: це може бути окреме меню для них, якесь поле у формі коментарів, а можливо і повністю інший дизайн. Визначити зареєстрованого в системі ви можете за допомогою умовного тега is_user_logged_in().

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

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

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

Припустимо, ви по-різному вітаєте анонімних і зареєстрованих користувачів.

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

display_name . ‘!’;
} else {
_e( ‘Ласкаво просимо на сайт!’, ‘translation-domain’ );
}
?>

50. Перевіряємо, чи є вкладення зображенням: wp_attachment_is_image()

Це дуже простий умовний тег: Ви передаєте в параметр ID запису, а тег повертає значення TRUE в разі, якщо вкладення запису є JPG, JPEG, GIF або PNG – файлом (а інакше повертає FALSE).

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

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

  • $post_id (тип «integer», обов’язковий): ID запису. Значення за замовчуванням: 0.

51. Перевірка на існування зазначеного типу запису: post_type_exists()

У деяких ситуаціях потрібно перевіряти, чи є цей тип запису. Наприклад, ви розробляєте плагін для створення портфоліо, і хочете використовувати запису звичайних типів із записами типу «портфоліо». Використовуйте для цього умовний тегpost_type_exists().

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

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

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

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

Припустимо, що при розробці плагіна «портфоліо» ви вирішили, що записи, створені плагіном, будуть мати тип «portfolio«.

Тому вам потрібно попередити користувачів про те, що такий тип записів вже використовується:

‘. __( Увага, ‘translation-domain’ ) . ‘:’
. __( ‘Тип записів з ім’ям «portfolio» вже використовується іншим плагіном або темою.
Це може викликати конфлікти.’, ‘translation-domain’ ) . ‘

‘;
}
}
?>

52. Перевіряємо, публікується поточна запис на новий день (на завтра): is_new_day()

Функції WordPress вирішують навіть самі незначні на перший погляд проблеми, і is_new_day() одна з них: цей умовний тег повертає значення TRUE, якщо дата поточного запису відрізняється від попередньої.

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

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

Висновок

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

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

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here