has_post_format()

Проверяет, имеет ли запись какой-либо из указанных форматов или любой формат
Функция WordPress
INT 3.1.0
WordPress Icon

Описание функции

Функция has_post_format() используется для проверки наличия у поста заданного формата или любого формата. Она возвращает значение true, если пост имеет один из заданных форматов (или любой формат, если формат не указан), в противном случае возвращает false.

Использование

has_post_format( string|string[] $format = array(), WP_Post|int|null $post = null ): bool

Функция has_post_format() принимает два параметра: $format (необязательный) и $post (необязательный). Параметр $format определяет формат или форматы, которые нужно проверить. По умолчанию он равен пустому массиву. Параметр $post определяет пост, который нужно проверить. По умолчанию он равен текущему посту в цикле.

  • $format (строка или массив строк) — Формат или форматы для проверки. По умолчанию: пустой массив.
  • $post (WP_Post|int|null) — Пост для проверки. По умолчанию: текущий пост в цикле.

Функция возвращает значение true, если пост имеет один из заданных форматов (или любой формат, если формат не указан), в противном случае возвращает false.

<?php
  $format = 'gallery'; // Заданный формат
  $post = get_post(); // Текущий пост в цикле
  if ( has_post_format( $format, $post ) ) { // Проверяем наличие заданного формата у поста
    echo 'Пост имеет формат галереи.';
  } else {
    echo 'Пост не имеет формат галереи.';
  }
?>

В этом примере мы проверяем наличие формата «gallery» у текущего поста в цикле. Если пост имеет этот формат, выводится сообщение «Пост имеет формат галереи», в противном случае выводится сообщение «Пост не имеет формат галереи».

Примеры использования

Проверка наличия формата у поста


/**
 * Проверяет, имеет ли пост указанный формат.
 *
 * @param string|string[] $format (optional) Формат или форматы для проверки. По умолчанию: array()
 * @param WP_Post|int|null $post (optional) Пост для проверки. По умолчанию: null
 * @return bool Возвращает true, если пост имеет указанный формат (или любой формат, если формат не указан), в противном случае - false.
 */
function has_post_format( $format = array(), $post = null ) {
    // Реализация функции
}

Определение формата поста


$post_id = 123; // Идентификатор поста
$post_format = get_post_format( $post_id );
if ( $post_format ) {
    echo 'Пост имеет формат: ' . $post_format;
} else {
    echo 'Пост не имеет формат';
}

Получение форматов поста


$post_id = 123; // Идентификатор поста
$post_formats = get_post_format( $post_id );
if ( $post_formats ) {
    echo 'Пост имеет следующие форматы: ';
    foreach ( $post_formats as $format ) {
        echo $format . ', ';
    }
} else {
    echo 'Пост не имеет форматов';
}

Проверка наличия конкретного формата у поста


$post_id = 123; // Идентификатор поста
if ( has_post_format( 'gallery', $post_id ) ) {
    echo 'Пост имеет формат "gallery"';
} else {
    echo 'Пост не имеет формата "gallery"';
}

Проверка наличия любого формата у поста


$post_id = 123; // Идентификатор поста
if ( has_post_format( '', $post_id ) ) {
    echo 'Пост имеет любой формат';
} else {
    echo 'Пост не имеет форматов';
}

Вопросы и ответы

Как проверить, имеет ли пост указанный формат?

Функция has_post_format() позволяет проверить, имеет ли пост указанный формат.

if ( has_post_format( 'video' ) ) {
    echo 'Пост имеет формат "video".';
} else {
    echo 'Пост не имеет формат "video".';
}

Как проверить, имеет ли пост любой формат?

Если необходимо проверить, имеет ли пост любой формат, можно вызвать функцию has_post_format() без указания формата.

if ( has_post_format() ) {
    echo 'Пост имеет формат.';
} else {
    echo 'Пост не имеет формат.';
}

Как указать несколько форматов для проверки?

Для проверки наличия нескольких форматов необходимо передать массив с указанием форматов в качестве параметра функции has_post_format().

$formats = array( 'video', 'audio' );
if ( has_post_format( $formats ) ) {
    echo 'Пост имеет формат "video" или "audio".';
} else {
    echo 'Пост не имеет формат "video" или "audio".';
}

Как проверить формат поста вне цикла?

Для проверки формата поста вне цикла необходимо передать объект поста или его ID в качестве второго параметра функции has_post_format().

$post_id = 123;
if ( has_post_format( 'video', $post_id ) ) {
    echo 'Пост с ID 123 имеет формат "video".';
} else {
    echo 'Пост с ID 123 не имеет формат "video".';
}

Как проверить формат поста с помощью ID поста?

Функция has_post_format() позволяет проверить, имеет ли пост указанный формат или любой формат, если формат не указан.

Для проверки формата поста с помощью ID поста необходимо передать ID поста в качестве параметра $post функции has_post_format().


$post_id = 123; // ID поста
$format = 'gallery'; // Формат поста
if ( has_post_format( $format, $post_id ) ) {
    echo 'Пост имеет формат галереи.';
} else {
    echo 'Пост не имеет формата галереи.';
}

Как проверить формат поста с помощью объекта WP_Post?

Для проверки формата поста с помощью объекта WP_Post необходимо передать объект поста в качестве параметра $post функции has_post_format().


$post = get_post( 123 ); // Получение объекта поста
$format = 'video'; // Формат поста
if ( has_post_format( $format, $post ) ) {
    echo 'Пост имеет формат видео.';
} else {
    echo 'Пост не имеет формата видео.';
}

Как проверить формат поста с помощью поста в цикле?

В цикле WordPress можно использовать функцию has_post_format() без указания параметра $post. В этом случае функция будет проверять формат текущего поста в цикле.


if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();
        $format = 'audio'; // Формат поста
        if ( has_post_format( $format ) ) {
            echo 'Пост имеет формат аудио.';
        } else {
            echo 'Пост не имеет формата аудио.';
        }
    }
}

Как проверить формат поста с помощью поста вне цикла?

Если нужно проверить формат поста вне цикла, необходимо явно указать параметр $post функции has_post_format() и передать объект поста или ID поста.


$post_id = 123; // ID поста
$format = 'quote'; // Формат поста
if ( has_post_format( $format, $post_id ) ) {
    echo 'Пост имеет формат цитаты.';
} else {
    echo 'Пост не имеет формата цитаты.';
}

Функция has_post_format() позволяет проверить, имеет ли пост указанный формат или любой формат, если формат не указан. Она может быть использована для проверки формата поста с помощью ID поста, объекта WP_Post, поста в цикле или поста вне цикла.

Связанные элементы

  • Функция get_post_format(): Возвращает формат поста.
  • Функция set_post_format(): Устанавливает формат поста.
  • Функция get_post_format_slugs(): Возвращает список доступных форматов поста.
  • Функция get_post_format_string(): Возвращает строку формата поста.
Обсуждение