Простое и понятное объяснение форматов записей

Форматы записей появились в WordPress 3.1. Что они собой представляют? Чем они отличаются от рубрик и меток? Для чего вообще была введена новая характеристика записей? Давайте со всем этим разберемся.

Формат записи — это некоторое информация, связанная с записью и определяющая ее представление в используемой теме. По умолчанию в WordPress поддерживаются следующие форматы записей:

  • aside
  • gallery
  • link
  • image
  • quote
  • status
  • video
  • audio
  • chat

Если тема поддерживает указанные форматы записей, то их можно будет отыскать в меню Записи — Добавить новую, либо в разделе редактирования записей.

Если тема поддерживает форматы записей, она должна содержать в себе следующий код в файле functions.php:

add_theme_support( 'post-formats', array( 'aside','image','quote','status','video','audio','chat' ) );

Тема, поддерживающая различные форматы записей, обычно включает в себя соответствующую стилизацию для них.

Если добавить метод post_class() к тегу article в пределах цикла:

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

то мы сможем получить следующий код для записей, содержащий выбранный формат в качестве одного из значений атрибута class:

 
<article id="post-20" class="post-20 post type-post status-publish format-standard hentry category-uncategorized">

Все зависит от формата записей, который мы использовали. Если бы мы взяли формат aside (заметка), то мы бы получили класс format-aside.

Естественно, чтобы представление записей отличалось друг от друга в зависимости от используемого формата, необходимо добавить некоторые CSS-стили. Например, в известной теме CoffeeTime применяется следующая стилизация:

.format-aside .titlearea { background:url(images/pf/aside.png) no-repeat left top;}
 .format-audio .titlearea { background:url(images/pf/audio.png) no-repeat left top;}
 .format-chat .titlearea { background:url(images/pf/chat.png) no-repeat left top;}
 .format-standard .titlearea { background:url(images/pf/standard.png) no-repeat left top;}
 .format-gallery .titlearea { background:url(images/pf/gallery.png) no-repeat left top;}
 .format-image .titlearea { background:url(images/pf/image.png) no-repeat left top;}
 .format-link .titlearea { background:url(images/pf/link.png) no-repeat left top;}
 

Здесь задаются изображения, находящиеся в заголовке каждой записи определенного формата. Выглядит это следующим образом:

По материалам:
http://wprocks.com/wordpress-tips/what-are-post-formats-how-do-we-put-it-to-use/

Блог про WordPress
Комментарии: 11
  1. Kubig

    Что то Я не понял, а как можно сделать так, что бы при написание поста Я мог выбрать этот формат?

    1. Дмитрий (автор)

      Тема WordPress должна их поддерживать. Если у вас они не выводятся на экране редактирования записи, то ваша тема их не поддерживает.

      1. Kubig

        Ну у меня они поддерживаются, а как добавить в этот список новый формат записи? (https://pp.vk.me/c313629/v313629544/5718/jhFeuNCF0os.jpg)

        В functions.php у меня вот так (добавил job):

        /** Post Formats */
        add_theme_support( ‘post-formats’, array( ‘aside’, ‘job’, ‘audio’, ‘chat’, ‘gallery’, ‘image’, ‘link’, ‘quote’, ‘video’ ) );

        На основании content-aside.php создал job-aside.php

        Но формат всё равно не появляется и другие плагины его не видят. Что делать?

        Ну или если желание есть? Давай Я тебе тему скину и напишу полностью что мне надо. Ты скажешь что по чём.

  2. Дмитрий (автор)

    Простым редактированием строки ничего не изменится. Чтобы зарегистрировать новый формат записи, нужно писать специальный код. Вот пример (из кодекса для формата с названием book):

    function codex_custom_init() {
        $args = array(
          'public' => true,
          'label'  => 'Books'
        );
        register_post_type( 'book', $args );
    }
    add_action( 'init', 'codex_custom_init' );
    

    Это базовое подключение формата записей. Дополнительно к этому можно задавать кучу дополнительных параметров. Вот статья из кодекса, если нужны подробности:

    http://codex.wordpress.org/Function_Reference/register_post_type

    Сам я, к сожалению, заказов по разработке не беру, потому в данном случае помочь могу только советами.

    1. Kubig

      Я запутался, таксономия и формат записи, это одно и то же?

      1. Дмитрий (автор)

        Нет, это разные вещи. Таксономия — это способ группировки каких-либо элементов по определенному признаку. К примеру: метки и рубрики — пример таксономий. Формат записи — это вид записи: заметка, аудио, галерея, ссылка и т.д.

        1. adward

          Тут вы малость ошибаетесь. Там описан процесс создания нового типа записи, который как правило отображается в левой колонке в админке. Записи нового типа могут существенно отличаться от записей стандартных.

          А в этой статье — разговор о форматах стандартной записи.

          Кстати, как создавать собственный формат записи, я так и не нашёл в интернете. Походу такой возможности просто нет :(

          1. Волшебник

            adward, по-моему формат записи зависит от темы оформления и прописывается в ней (т.е. вроде б вообще нет такого понятия как некий дефолтный набор форматов записей, да и сами эти форматы — довольно условное понятие, и разнятся от темы к теме). Чем эти форматы собственно отличаются друг от друга? Да просто тем, как тема их выводит. Например тупо разные форматы разным цветом делает, или как-нибудь еще их отображает, вот и всё. Соответственно, чтобы создать новый формат записи, надо просто добавить его в шаблон темы и прописать для него своё оформление. Имхо.

  3. Kubig

    Спасибо, будем читать. А есть что то типа вот этого http://codex.wordpress.org/Function_Reference/register_post_type на русском языке? Хотя бы тезисно.

    1. Дмитрий (автор)

      Пробежался по поиску в своем блоге, но не нашел. Думал, что уже переводил… Странно. Надо будет исправить этот пробел. В ближайшем времени попробую найти подходящую статью на перевод.

  4. Дмитрий (автор)

    «Кстати, как создавать собственный формат записи, я так и не нашёл в интернете. Походу такой возможности просто нет»

    Как это нет, если я в комментариях писал про функцию register_post_type и приводил ссылку.

    Никаких стандартных форматов записей нет, все зависит от темы. Тема может предлагать любые форматы записей, причем под любыми названиями, как это будет угодно разработчикам.

Добавить комментарий для adward Отменить ответ

Получать новые комментарии по электронной почте.