get_post_format()
— это встроенная функция WordPress, которая возвращает формат (тип) записи. Форматы постов позволяют разработчикам создавать разные шаблоны для контента в зависимости от его типа, например, для цитат, видео, галерей и других. Функция может быть вызвана в цикле WordPress или с указанием конкретного ID записи для получения нужного формата.
get_post_format( int|WP_Post|null $post = null ): string|false
Параметры:
- $post (int | WP_Post | null): Опциональный. ID поста или объект поста. Если параметр не указан, по умолчанию будет использована текущая запись в цикле.
Возвращаемое значение:
- string|false: Возвращает строку с форматом поста, если успех. Возвращает
false
, если формат не установлен (обычный пост).
Поддерживаемые форматы:
- aside
- chat
- gallery
- link
- image
- quote
- status
- video
- audio
Если формат поста не задан, функция вернет false
, что фактически означает использование стандартного (обычного) формата. В некоторых случаях это может быть полезно для реализации логики шаблона:
$format = get_post_format() ?: 'standard';
Пример 1: Подключение шаблонов для разных форматов постов
Данный код можно использовать для подключения различных шаблонов в зависимости от формата поста:
/*
* Подключение подшаблонов в зависимости от формата поста.
* Не забудьте создать файл format.php для стандартного поста и отдельные файлы
* для других форматов: format-link.php, format-aside.php и т.д.
*/
get_template_part( 'format', get_post_format() );
Пример 2: Проверка формата записи с использованием ID поста
Иногда может понадобиться получить формат конкретного поста, зная его ID. Вот пример кода для такой задачи:
$post_id = 123; // Здесь замените 123 на ID вашего поста
$format = get_post_format( $post_id );
if ( false === $format ) {
echo 'Формат не установлен, это стандартный пост.';
} else {
echo 'Формат поста: ' . $format;
}
Пример 3: Вывод разного контента в зависимости от формата
Этот код можно использовать для того, чтобы отображать различный контент для записей с разными форматами:
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$format = get_post_format();
switch ( $format ) {
case 'aside':
// Вывод контента для формата aside
echo '<div>Это заметка (Aside)</div>';
break;
case 'video':
// Вывод контента для формата видео
echo '<div>Это видео запись</div>';
break;
case 'quote':
// Вывод контента для цитаты
echo '<div>Цитата: ' . get_the_content() . '</div>';
break;
default:
// Стандартный формат
echo '<div>Это стандартный пост</div>';
break;
}
}
}
Заключение
Функция get_post_format()
— это мощный инструмент для гибкого управления отображением контента на сайте WordPress. Она позволяет подключать различные шаблоны в зависимости от формата поста, что делает разработку тем более адаптивной и динамичной.