Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

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

Формат записи — это функция темы оформления, появившаяся в версии 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.

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

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

  • заметка — обычно отображается без заголовка. Похожа на обновление статуса в 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()