Codex

Форматы записей

Формат записи — это функция темы оформления, появившаяся в версии 3.1, Форматы представляют собой метаданные, которые можно использовать в темах для настройки представления записи. Основная идея в том, чтобы иметь возможность явно указать «формат» отображения записи. Это позволяет не использовать с той же целью рубрики, а главное — обеспечивает совместимость со всеми темами, которые поддерживают эти форматы.

Например, раньше для отображения заметок создавалась рубрика «Asides» и в неё помещались записи, которые затем оформлялись по-другому с помощью функции post_class() или условия in_category('asides'). Новый подход позволяет теме зарегистрировать особый формат (например, add_theme_support('post-formats', array('aside'))), который можно будет выбрать в блоке «Опубликовать» при сохранении записи. Для определения формата можно воспользоваться функцией get_post_format( $post->ID ), а функция post_class() добавит класс «format-asides», который пригодится в оформлении с помощью CSS.

Contents

Поддерживаемые форматы

Поддерживаются следующие форматы записей:

  • заметка — обычно отображается без заголовка. Похожа на обновление статуса в Facebook.
  • чат — запись чата, например:
Иван: привет
Маша: привет
Иван: как дела?
  • галерея — галерея изображений.
  • ссылка — ссылка на другой сайт. В качестве внешней ссылки будет использован первый тег <a href=""> в содержимом записи. Если же вся запись состоит только из URL, то этот адрес будет адресом ссылки, а заголовок записи — её текстом.
  • изображение — одиночное изображение. В качестве изображения будет использован первый тег <img /> в записи. Если же вся запись состоит только из URL, то этот адрес будет адресом изображения, а заголовок записи — атрибутом title.
  • цитата — выдержка, фрагмент. Состоит из текста цитаты и источника. Цитата должна быть записана в поле post_content в таком виде: <blockquote>цитата_с_тегами_параграфа<p><cite>источник</cite></p></blockquote>.
  • статус — короткая строка, обычно до 140 символов. Похожа на обновление статуса в Twitter.
  • видео — одиночное видео. В качестве видеофайла будет использован первый тег <video /> или внедрённый объект в содержимом записи. Если же вся запись состоит только из URL, то этот адрес будет адресом видеофайла.
  • аудио — аудиофайл. Можно использовать для подкастинга.

Замечание: Надпись «Стандартный» при создании или редактировании записи означает, что её формат не указан. Кроме того, если указанный формат некорректен, будет использован стандартный.

Справочник функций

Теги шаблонов
Другие функции

скоро...

Добавление поддержки в тему

Чтобы сообщить WordPress о поддерживаемых форматах записей, темы должны использовать функцию add_theme_support() в файле functions.php, передавая массив аргументов. Например:

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

Использование форматов

В самой теме для проверки формата записи нужно использовать функцию get_post_format() и менять представление в соответствии с результатами. Обратите внимание, что записи с форматом по умолчанию вернут значение FALSE. Также можно использовать условный тег has_post_format():

if ( has_post_format( 'video' )) {
  echo 'это формат видеозаписи';
}

Обратная совместимость

Если ваш плагин или тема должны быть совместимы с более ранними версиями WordPress, нужно добавить в таксономию post_format элементы post-format-$format. Например:

wp_insert_term('post-format-aside', 'post_format');

Вы также должны зарегистрировать таксономию post_format с помощью функции register_taxonomy().

Исходный файл

Внешние ресурсы

См. также

Форматы записей: set_post_format(), get_post_format(), has_post_format()