Новинки WordPress 2.7

[ ←Вернуться к стандартному виду ]

Печатная версия

Создателям Тем WordPress

Каждому <div> в цикле, в который выводится запись, теперь можно вывести css классы в зависимости от того, какой меткой помечен пост, в какой рубрике он находится, является ли «прилепленным» и т.п.

<?php post_class() ?>

Используется так:

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

вот как это выглядит в цикле:

<div id="post-<?php the_ID(); ?>" <?php post_class() ?>>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_content('Далее »');  ?>

А вот результат на выходе для поста, который:

  • является постом (post)
  • прилеплен (sticky)
  • обозначает «контейнер» для всей записи (hentry) — привет микроформатам
  • в рубрике со слагом news (category-news)
  • помечен меткой со слагом privet (tag-privet)
<div id="post-1"class="post sticky hentry category-news tag-privet">

Т.о. можно «раскрашивать» с помощью стилей посты, объеденные каким-то общим свойством.

А вот так можно добавить к встроенным css классам свой класс myclass:

<?php post_class('myclass'); ?>

Или несколько своих css классов:

<?php post_class('myclass myclass1 onemoreclass'); ?>

Получается:

<div class="post sticky hentry category-news tag-privet myclass">
<div class="post sticky hentry category-news tag-privet myclass myclass1 onemoreclass">

Использование вне цикла:

<div <?php post_class('', $post_id); ?>>

get_search_form()

Вызывается форма поиска, пример использования:

<?php get_search_form(); ?>

wp_logout_url() и wp_login_url

Использование: после выхода редирект на ту же страницу:

<a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Выйти">Выйти »</a></p>

После входа редирект на ту эе страницу:

<a href="<?php echo wp_login_url(get_permalink()); ?>" title="Войти">Войти »</a></p>

Про wp_logout_url в Кодексе

Новое меню Статичных страниц wp_page_menu()

Аналог wp_list_pages, но имеет ряд отличий, например параметр show_home (показывать ссылку на главную или нет), link_before и link_after — что добавить до вывода названия Статичной страницы (но внутри тега <a>).

Пример:

<?php wp_page_menu('show_home=1&amp;amp;title_li=link_before=» &amp;amp;link_after= <span>привет</span>'); ?>

Получаем в исходном коде страницы:

<div id="menu">
<ul>
<li class="current_page_item"><a href="http://wp27.com">Главная</a></li>
<li class="page_item page-item-16"><a href="http://wp27.com/o-kompanii" title="О компании">» О компании <span>привет</span></a></li>
<li class="page_item page-item-2"><a href="http://wp27.com/about" title="О сайте">» О сайте <span>привет</span></a></li>
</ul>
</div>

Про wp_page_menu в Кодексе

Новый условный тег is_sticky()

Новая галочка в админ. панели при написании записи «Закрепить на главной» и новый условный тег. Пример:

<?php if ( is_sticky() ) echo 'Это прилепленный пост!'; ?>

Новый условный тег is_singular() — аналог is_single()

В чем разница между ними? is_singular() срабатывает при выполнении одного из условий: is_single(), is_page() или is_attachment(). Источник.

Комментарии

Древовидные комментарии

В WordPress 2.7 комментарии стали древовидными, если заглянуть в исходный код страницы с комментариями, то видно как много изменилось. В шапке темы default заметила новую строчку в header.php до перед <?php wp_head(); ?>

<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>

В файле comments.php также есть существенные изменения, так что легче, наверное, взять этот файл в Теме default (которая идет вместе с дистрибутивом WP 2.7) и заменить им свой. Совет подойдет не всем ввиду того, что все Темы сделаны и сверстаны по-разному. Для тех, кто предпочитает самостоятельно доработать свой comments.php: How to create a 2.7 compatible comments.php

Чтобы сделать универсальную Тему с корректно работающими комментариями как в WP 2.7, так и в более старых версиях WordPress, делаем 2 файла-шаблона для комментариев: comments.php для WordPress 2.7 и для старых версий вордпресса legacy.comments.php

Теперь добавляем в functions.php (в папке Темы) строчку:

add_filter('comments_template', 'legacy_comments');
function legacy_comments($file) {
if(!function_exists('wp_list_comments')) : // WP 2.7-only check
$file = TEMPLATEPATH.'/legacy.comments.php';
endif;
return $file;
}

Также с выходом WordPress 2.7 мы имеем вагон и маленькую тележку встроенных css классов для того, чтобы комментарии не только были древовидными, но и выглядели как древовидные:

ol.commentlist {}
ol.commentlist li {}
ol.commentlist li.alt {}
ol.commentlist li.bypostauthor {}
ol.commentlist li.byuser {}
ol.commentlist li.comment-author-admin {}
ol.commentlist li.comment {}
ol.commentlist li.comment div.comment-author {}
ol.commentlist li.comment div.vcard {}
ol.commentlist li.comment div.vcard cite.fn {}
ol.commentlist li.comment div.vcard cite.fn a.url {}
ol.commentlist li.comment div.vcard img.avatar {}
ol.commentlist li.comment div.vcard img.avatar-32 {}
ol.commentlist li.comment div.vcard img.photo {}
ol.commentlist li.comment div.vcard span.says {}
ol.commentlist li.comment div.commentmetadata {}
ol.commentlist li.comment div.comment-meta {}
ol.commentlist li.comment div.comment-meta a {}
ol.commentlist li.comment * {}
ol.commentlist li.comment div.reply {}
ol.commentlist li.comment div.reply a {}
ol.commentlist li.comment ul.children {}
ol.commentlist li.comment ul.children li {}
ol.commentlist li.comment ul.children li.alt {}
ol.commentlist li.comment ul.children li.bypostauthor {}
ol.commentlist li.comment ul.children li.byuser {}
ol.commentlist li.comment ul.children li.comment {}
ol.commentlist li.comment ul.children li.comment-author-admin {}
ol.commentlist li.comment ul.children li.depth-2 {}
ol.commentlist li.comment ul.children li.depth-3 {}
ol.commentlist li.comment ul.children li.depth-4 {}
ol.commentlist li.comment ul.children li.depth-5 {}
ol.commentlist li.comment ul.children li.odd {}
ol.commentlist li.even {}
ol.commentlist li.odd {}
ol.commentlist li.parent {}
ol.commentlist li.pingback {}
ol.commentlist li.pingback div.comment-author {}
ol.commentlist li.pingback div.vcard {}
ol.commentlist li.pingback div.vcard cite.fn {}
ol.commentlist li.pingback div.vcard cite.fn a.url {}
ol.commentlist li.pingback div.vcard span.says {}
ol.commentlist li.pingback div.commentmetadata {}
ol.commentlist li.pingback div.comment-meta {}
ol.commentlist li.pingback div.comment-meta a {}
ol.commentlist li.pingback * {}
ol.commentlist li.pingback div.reply {}
ol.commentlist li.pingback div.reply a {}
ol.commentlist li.pingback ul.children {}
ol.commentlist li.pingback ul.children li {}
ol.commentlist li.pingback ul.children li.alt {}
ol.commentlist li.pingback ul.children li.bypostauthor {}
ol.commentlist li.pingback ul.children li.byuser {}
ol.commentlist li.pingback ul.children li.comment {}
ol.commentlist li.pingback ul.children li.comment-author-admin {}
ol.commentlist li.pingback ul.children li.depth-2 {}
ol.commentlist li.pingback ul.children li.depth-3 {}
ol.commentlist li.pingback ul.children li.depth-4 {}
ol.commentlist li.pingback ul.children li.depth-5 {}
ol.commentlist li.pingback ul.children li.odd {}
ol.commentlist li.thread-alt {}
ol.commentlist li.thread-even {}
ol.commentlist li.thread-odd {}

Горячие клавиши редактирования комментариев

Для того, чтобы активировать горячие клавиши для управления комментариями из админ. панели, нужно отметить галочку «Включить «горячие клавиши» для модерирования комментариев» в профиле.

Кстати, чтобы горячие клавиши действовали, нужно переключать клавиатуру в английскую раскладку.

  • j листает вниз
  • k листает вверх
  • a одобрить выделенный коментарий
  • s пометить как спам выделенный коментарий
  • d удалить выделенный коментарий
  • u перевести в статус «на модерации» выделенный коментарий
  • r ответить на выделенный комментарий (нажмите клавишу Esc чтобы отменить)
  • q быстрое редактирование выделенного комментария
  • x поставить галочку (чекбокс) напротив выделенного комментария

Массовое редактирование:

  • Shift-a одобрить все выделенные комментарии
  • Shift-s пометить как спам выделенные комментарии
  • Shift-d удалить все выделенные комментарии
  • Shift-u перевести в статус модерации все выделенные комментарии

Про горячие клавиши в Кодексе.

Новый параметр в wp_title()

Появился новый параметр seplocation с версии WordPress 2.5, указывает, с какой стороны заголовка ставить разделитель, пример:

<title>
<?php wp_title('»',true,'right'); ?>
<?php bloginfo('name'); ?>
</title>

Админ. панель WordPress 2.7

Помимо всего прочего админ. панель стала удобнее и компактнее, появилось меню «Медиафайлы», где можно управлять загруженными файлами, а также загружать их в библиотеку (раньше можно было загружать файлы только через редактирование записи).

Появилось управление метками, метки теперь можно создавать «про запас» в админке (раньше новую метку можно было добавить только при создании/редактировании записи). В меню «Метки» можно видеть облако самых популярных меток, скольким постам присвоена та или иная метка.

Вверху каждой страницы админки появилась кнопочка «Настройки экрана», где можно отрегулировать что показывать на данной странице, а что убрать. Удобно!

Можно постить прямо с «Доски объявлений», не заходя в меню «Записи». Прикольно :)

Ждем на днях финальным WordPress 2.7 и локализацию wp 2.7 Ивана Калинина (перевод админки выполнен с пояснениями и дополнениями, WP-новичкам должно особо понравится).


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

  1. # Trackback Тетрадь для записей 14.12.2008 в 03:58

    WordPress: 2.7 пишем, 2.7.X в уме...

    Добрался, как и собирался, до новой версии WordPress, которая вышла 11 декабря. Сначала кратко, наискосок, об отличиях от ветки 2.6. Основные продв...

  2. # Айрат (10) 16.12.2008 в 23:00

    Они столько реализовали, о чем я мечтал в 2.5... Как считаете есть смысл переезжать на 2.7? На 2.6 я так и не переехал, у меня достаточное количество правленных php-файлов движка :)

  3. # sonika (301) 21.12.2008 в 01:39

    Чего-то вы в спам Акисмета попали, Айрат. Не знаю, вам решать, все же 2.7 сильно отличается от предыдущих версий, в лучшую сторону. Поставьте на локалке и посмотрите сами :)

  4. # Truper (3) 04.02.2009 в 09:08

    Да, много нового и полезного ввели. Спасибо за статью, теперь буду пользоваться новыми фишками ;) Жалко, что основной блог у меня на wp 2.3.

  5. # acidmix 02.03.2009 в 15:37

    А как вот сделать, чтобы у автора была своя автарка, при условии что на сайте нет регистрации! у всех одинаковые аватары, а у автора своя )

  6. # sonika 02.03.2009 в 22:51

    acidmix, зарегистрировать email автора (указанный в wordpress блоге) в сервисе аватаров gravatar.com и загрузить к нему аватарку. Она и будет отображаться.

  7. # Дн (3) 08.05.2009 в 22:22

    Что-то для дефолтной темы wp_logout_url реализовать не удаётся. Может, какие-то подводные камни там есть?

  8. # Дн (3) 12.05.2009 в 17:40

    Ещё б она реализовывалась, когда куки сбрасываются (чего они глючили, так и не понял), а WP при этом предлагает попробовать выйти ещё раз. :D

    Кстати, прописал только редирект при выходе, а у меня чудесным образом работает и редирект при входе. :)

  9. # Пинк (2) 10.11.2009 в 10:45

    Соня, в первом и втором примере кода полетело оформление. Пофикси, как будет время :)

  10. # Novice 28.04.2010 в 11:52

    Использование "-" (post-) не очень. В некоторых случаях получается "--" в конце названия класса. В некоторых темах есть такая конструкция: <!--<?php post_class() ?> -->, которая вставляет комментарии. В результате в коде страницы: <!--"post-13 class hentry category--" --> (точно и подробно сейчас лень описывать). В итоге: двойной дефис внутри комментария приводит к ошибке при валидации документа.

  11. # Webliberty (1) 30.11.2011 в 10:45

    Здравствуйте! Не могу понять, вот в вордпрессе в комментариях используется класс vcard и присваивается микроформат для каждого комментатора (подтверждается валидатором микроразметки Яндекса). Влияет ли это как нибудь на поисковые системы, ведь все-таки адреса блогов комментаторов выделены специальным форматом...?

  12. # Сергей (1) 26.04.2017 в 17:54

    Приветствую всех!
    Что-то я не увидел некоторых намеченных кодов. Вижу только слеш, а потом пусто.

Подписаться на фид.
RSS комментариев к этой записи. | TrackBack URI

Написать комментарий


Все саттелиты — в топку! Даже не сомневайтесь. Для вопросов о вордпресс не по теме поста есть два русскоязычных форума по wordpress.

[ ←Вернуться к стандартному виду ]

Печатная версия