has_post_format()
Проверяет наличие указанного формата у записи (поста). Условный тег.
В функцию передается названия формата или нескольких форматов и она проверят относится ли запись в цикле к указанному формату.
Если указать второй параметр - ID записи, то функцию можно использовать за пределами цикла - проверка наличия формата будет для указанной записи.
Формат записи хранится в таксономии post_format.
Форматы записей - это дополнительная функциональность WordPress, которая включается отдельно.
Используйте set_post_format(), чтобы установить формат для поста.
Подробнее про форматы записей.
Хуков нет.
Возвращает
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( array('video', 'gallery') ) ){
// это медиа пост
} #2 Демонстрация работы
Предположим нам в цикле нужно проверить формат поста и вывести иконку, если это, предположим, video формат:
// В цикле
if( has_post_format( 'video' ) ){
echo "<img src="ссылка на иконку" alt="" />";
} #3 Проверка формата у конкретного поста
Этот пример показывает как проверить формат у поста с ID = 23:
if( has_post_format( 'status', 23 ) ){
// это статус
}
Список изменений
| С версии 3.1.0 | Введена. |
Код has_post_format() has post format WP 7.0
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 );
}