WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com

has_post_format() WP 3.1

Проверяет наличие указанного формата у записи (поста). Условный тег.

В функцию передается названия формата или нескольких форматов и она проверят относится ли запись в цикле к указанному формату. Если указать второй параметр - ID записи, то функцию можно использовать за пределами цикла - проверка наличия формата будет для указанной записи.

Форматы записей - это дополнительная опция WordPress. Она включается отдельно и в некоторых темах её может не быть.

Работает на основе: has_term()
✈ 1 раз = 0.001473с = очень медленно | 50000 раз = 63.94с = очень медленно

Хуков нет.

Возвращает

Логические:
true - если запись относится к указанному формату;
false - если запись не относится ни к одному формату.

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

has_post_format( $format, $post_id );
$format(строка/массив) (обязательный)
Название формата поста, который нужно проверить. Можно указать несколько названий форматов в массиве. Базовые форматы WordPress: aside, chat, gallery, link
image, quote, status, video, audio.
$post_id(число/объект)
ID поста (записи), наличие указанного формата у которого нужно проверить.
По умолчанию: null - текущий пост в цикле

Примеры

#1 Демонстрация работы

Предположим нам в цикле нужно проверить формат поста и вывести иконку, если это, предположим, video формат:

// В цикле
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 ) ){
	// это статус
}

Код has_post_format: wp-includes/post-formats.php VER 5.0.1

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

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

Из метки: post format (форматы записей)

Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться