has_post_format()
Перевіряє наявність зазначеного формату запису (поста). Умовний тег.
У функцію передається назви формату або кількох форматів і вона перевірять, чи належить запис у циклі до зазначеного формату. Якщо вказати другий параметр – ID запису, то функцію можна використовувати за межами циклу – перевірка наявності формату буде для зазначеного запису.
Формати записів – це додаткова опція WordPress. Вона включається окремо й у деяких темах її може бути.
has_term()
(дуже повільно) | 50000 разів – 63.94 сек
(дуже повільно)
Хуків немає.
Повертає
true|false
. Логічні:
true – якщо запис відноситься до зазначеного формату;
false – якщо запис не відноситься до жодного формату.
Використання
has_post_format($format, $post_id);
-
$format
(рядок/масив) (обов’язковий) -
Назва формату посту, який потрібно перевірити. Можна вказати кілька назв форматів у масиві. Базові формати WordPress: aside, chat, gallery, link
image, quote, status, video, audio. -
$post_id
(число/об’єкт) -
ID посту (запису), наявність зазначеного формату, у якого потрібно перевірити.
Типово: null – поточний пост у циклі
Приклади
#1 Демонстрація роботи
Припустимо нам у циклі потрібно перевірити формат посту та вивести іконку, якщо це, припустимо, відео формат:
// У циклі if( has_post_format( 'video' ) ){ echo "<img src="посилання на іконку" alt="" />"; }
#2 Приклад вказівки кількох форматів для перевірки
Припустимо наші записи умовно поділяються на новини (звичайні пости) та медіа (пости з галереями та відео). При виведенні в циклі нам потрібно помітити пости медіа. Для цього вкажемо формати у вигляді масиву:
if( has_post_format( array('video', 'gallery') ) ){ // це медіа пост }
#3 Перевірка формату біля конкретного посту
Цей приклад показує як перевірити формат у посту з ID = 23:
if( has_post_format( 'status', 23 ) ){ // це статус }
список змін
З версії 3.1.0 | Введено. |
Код has_post_format() has post format WP 6.0.2
function has_post_format( $format = array(), $post = null ) { $prefixed = array(); if ($format) { foreach ((array) $format as $single) { $prefixed[] = 'post-format-'. sanitize_key( $single ); } } return has_term( $prefixed, 'post_format', $post ); }