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

# HAS_POST_FORMAT() │ WP 3.1.0

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

**Использует:** has_term()

**Производительность:**
- 1 раз — 0.001473 сек (очень медленно)
- 50000 раз — 63.94 сек (очень медленно)

**Хуки:** нет.

## Возвращаемое значение

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

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

```php
has_post_format( $format, $post );

Параметры

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

Примеры

Пример 1: Проверка формата записи

Допустим, нам нужно проверить формат записи в цикле и отобразить иконку, если это, скажем, видеоформат:

// внутри цикла
if( has_post_format( 'video' ) ){ 
    echo "";
}

Пример 2: Указание нескольких форматов для проверки

Предположим, наши записи условно делятся на новости (обычные записи) и медиа (записи с галереями и видео). При выводе в цикле нам нужно пометить записи как "медиа". Для этого мы укажем форматы в виде массива:

if( has_post_format( array('video', 'gallery') ) ){
    // это запись медиа
}

Пример 3: Проверка формата конкретной записи

Этот пример показывает, как проверить формат записи с ID = 23:

if( has_post_format( 'status', 23 ) ){
    // это статус
}

Код функции

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 );
}

Связанные функции

  • get_post_format() — получает формат записи.
  • set_post_format() — задает формат записи.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *