Еще с выходом WordPress 3.1 появилась новая опция под названием Форматы постов (Post Formats). Она дала возможность авторам выбирать для своих постов один из 9 основных форматов. Разработчики тем вынуждены были добавлять в свои темы поддержку для каждого из форматов постов, а также дополнительные теги и CSS для совместимости и предоставления полной функциональности пользователям своих тем в связи с данными изменениями. Каждый из форматов мог отображаться с другой структурой и дизайном, хотя в самом редакторе постов в wp-admin Консоли эта разница не была заметна.
В этом практическом руководстве речь пойдет о том, как настроить вашу тему оформления на отображение цитат в отдельном формате, чтобы видеть отличие в оформлении в редакторе постов при написании новой записи в редакторе.
Кое-что о форматах постов
Всего есть 9 форматов для постов, которые поддерживаются в теме оформления:
- Aside
- Gallery
- Video
- Audio
- Image
- Status
- Link
- Quote
- Chat
О них вы можете прочесть в статье Post Formats Inside and Out.
Шаг 1. Добавляем поддержку форматов для постов
Сначала давайте убедимся, что наша тема поддерживает форматы постов и стили для редактора. Для этого нам надо добавить следующий код в файл functions.php:
// This theme styles the visual editor with editor-style.css to match the theme style. add_editor_style(); // Add support for the quote post formats add_theme_support( 'post-formats', array( 'quote' ) );
Подсказка: Не забудьте, что при добавлении PHP в файл надо начинать с открывающего тега <?php и закрывать тегом ?>, иначе у вас будет отображаться код HTML, а не выполняться код PHP.
Шаг 2. Файл с цитированием контента
Чтобы контролировать отображение на странице нашего поста в формате цитаты, создадим файл под названием content-quote.php. Это шаблон нашей страницы с цитатой, и его надо поместить в папку с нашей темой. Вот какой код следует добавить:
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <div class="post-content"> <?php the_content( '' ); ?> </div> </article>
Этот шаблон будет использоваться на главной и на архивной страницах, и часто его вызывают прямо из файла index.php с помощью следующего кода:
<?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', get_post_format() ); ?> <?php endwhile; ?>
Шаг 3. Создаем CSS
Вот пример того, как пост в формате цитаты выглядит в теме оформления Gridiculous:
Для визуальной настройки нам нужен код CSS:
/* =Quote -------------------------------------------------------------- */ .format-quote .post-content { font-size: 18px; line-height: 27px; padding-left: 50px; font-style: italic; } .format-quote p, .format-quote blockquote { margin: 0; } .format-quote:before { font-family: Georgia, serif; color: #999; display: block; font-size: 100px; width: 50px; content: '\201C'; height: 0; top: -40px; position: relative; } .format-quote blockquote { border: 0; padding: 0; font-size: 18px; color: #555; } cite { text-align: right; font-style: normal; display: block; margin-bottom: 10px; } cite:before { content: '\2013 \00A0'; }
Приведенный выше CSS надо включить в файл style.css нашей темы оформления, а также создать файл editor-style.css и добавить его к нашей теме. Эта таблица стилей — то, что мы будем использовать при просмотре нашего поста в визуальном редакторе.
Шаг 4. Магия jQuery
Почти все эффекты, которые доступны вам в панели администрирования WordPress, созданы с применением jQuery. Поскольку он уже есть на странице администрирования, давайте используем его и в работе визуального редактора с нашими новыми форматами постов и с их стилями.
Если у вас еще нет папки /js в вашей теме, создайте ее и добавьте в нее новый файл под названием editor-styles-post-format.js. Как только создадите файл, откройте его и в текстовом редакторе добавьте следующий код:
( function($) { $(window).load( function() { var init_post_format = $( '#post-formats-select' ).find( '.post-format:checked' ).val(); add_post_format( init_post_format ); } ); $( '#post-formats-select' ).find( '.post-format' ).change( function() { var post_format = $(this).val(); add_post_format( post_format ); } ); function add_post_format( post_format ) { post_format = ( 0 == post_format ) ? 'standard' : post_format; if ( frames['content_ifr'] ) $( 'html', frames['content_ifr'].document ).removeClass().addClass( 'format-' + post_format ); } } )(jQuery);
Теперь когда у нас готов jQuery-скрипт, нам надо создать к нему запрос, чтобы он срабатывал всякий раз, когда мы осуществляем переходы в панели администрирования. Вот еще небольшой блок кода, который надо добавить в наш файл functions.php:
add_action( 'admin_enqueue_scripts', 'editor_style_admin_script' ); function editor_style_admin_script( $hook ) { if ( 'post-new.php' == $hook || 'post.php' == $hook ) wp_enqueue_script( 'editor_styles_post_format_js', get_template_directory_uri() . '/js/editor-styles-post-format.js', true, array( 'jquery' ), '1.0.0' ); }
Шаг 5. Пишем цитату
Все на своих местах, и самое время выбрать формат для нашего нового поста. Всякий раз, как мы будем это делать, класс будет добавляться к нашему визуальному редактору также, как он добавляется к отображению содержимого на странице. И так мы сможем увидеть, как будет выглядеть наш пост в глазах читателя еще в процессе написания данного поста с цитатой. Нам надо просто убедиться, что мы используем следующий HTML-код при создании новой цитаты, чтобы корректно срабатывали стили CSS:
<blockquote> Only one thing is impossible for God: To find any sense in any copyright law on the planet. <cite> <a href="http://www.brainyquote.com/quotes/quotes/m/marktwain163473.html"> Mark Twain </a> </cite> </blockquote>
Заключение
Приведенное руководство состоит из нескольких шагов, но в конечном итоге в нем нет ничего сложного, и ваш визуальный редактор начнет корректно работать с форматами постов. К счастью, у многих тем оформления уже включены большинство из приведенных элементов, так что вам просто надо будет создать новый файл JavaScript и запрос сценария к нему. Возможно, в будущем данная функциональность даже станет частью ядра WordPress за счет создания специального патча. Если у вас есть замечания или пожелания к описанному способу работы с новыми форматами постов, вы всегда можете их высказать в комментариях.
Комментарии к записи: 5
Как бы да, но не представляю зачем может пригодится. Всяко проще шоркодами, чем создаватькакие-то рамки для себя в виде тех же 9 форматов страниц. Нет?
Внутренний редактор WordPress TinyMCE просто ужасен и требует допиливания напильником.
Подключение стилей, плюс создание шаблонов(http://wordpress.org/extend/plugins/simple-post-template/) помогает частично снять геморой.
Подключение javascript это великолепно.
В таких статьях всегда есть изюминка. В этой, я для себя нашел изюминку, это подключение javascript-a.
Спасибо этому сайт за переводы и поиск материалов.
Могу ли я дать некоторые ссылки на интересные материалы(ссылки на интересные материалы) по WordPress?
Так как, смотрю, здесь все с одного и того же сайта переводы.
Да, конечно, оставляйте ссылки на материалы! Если что, мы обязательно опубликуем и подготовим статьи по новой полезной информации.
Да, много раз обращал внимание на разные форматы. Но чем обычный пост с видео отличается от такого же поста в видорформате, непонятно.
Интересная возможность, но пока буду обходиться без неё.