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

Дата публикации:Октябрь 6, 2011

Форматы записей появились в 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/

Поделиться

11 комментариев

  1. Kubig says:

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

    • Architect Of Ruin says:

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

      • Kubig says:

        Ну у меня они поддерживаются, а как добавить в этот список новый формат записи? (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. Architect Of Ruin says:

    Простым редактированием строки ничего не изменится. Чтобы зарегистрировать новый формат записи, нужно писать специальный код. Вот пример (из кодекса для формата с названием 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

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

    • Kubig says:

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

      • Architect Of Ruin says:

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

        • adward says:

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

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

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

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

  3. Kubig says:

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

    • Architect Of Ruin says:

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

  4. Дмитрий Алёшин says:

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

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

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

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.