Таксономия в WordPress 2.8 и альтернативы

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

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

Сначала просто хотела перевести статью про Custom Taxonomies, но почитав и опробовав, слегка разочаровалась. Добавить свою таксономию в WordPress 2.8 оказалось очень легко, но наворотить посредством кастомных таксономий что-либо сложное не получается, т.к. основная задача у меня на данный момент — создать сайт, записи которого можно группировать и так и сяк, не только по меткам и рубрикам.

Предположим, у нас есть записи (посты), которым присваивается несколько признаков, например:

  • Цвет (зеленый, красный, голубой и т.д.)
  • Размер (маленький, большой, средний)
  • Форма (треугольник, квадрат, овал и т.д.)

Задача: без излишних «некрасивых» телодвижений выводить записи с разными признаками:

  • все посты с признаками зеленый + квадрат
  • все посты с признаками голубой + квадрат + большой размер
  • все посты с признаками зеленый +средний размер
  • и т.п.

Используем метки (теги)

Все это довольно легко организовать с помощью меток (тегов), но не очень удобно при написании записи и выводе постов: метки в записи заполняются «сплошным» вводом в бокс «Метки» без всякой разбивки по группам (признакам): зеленый, большой размер, треугольник. А если вы используете метки для чего-то ещё, то получается каша-мала. А посты можно выводит таким образом:

при включенном ЧПУ, где zelenyi, kvadrat — это слаги соответствующих меток:

http://site.ru/tag/zelenyi+kvadrat/— все посты, в которых есть обе метки: зеленый и квадрат

http://site.ru/tag/zelenyi,kvadrat/— все посты, в которых хотя бы одна метка: зеленый или квадрат

при ЧПУ по-умолчанию урлы будут такими:

http://site.ru/?tag=zelenyi+kvadrat— все посты, в которых есть обе метки: зеленый и квадрат

http://site.ru/?tag=zelenyi,kvadrat— все посты, в которых хотя бы одна метка: зеленый или квадрат

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

<a href="http://site.ru/?tag=zelenyi+kvadrat">Зеленые квадраты</a>

А вот если используются еще и рубрики, то вывести все посты «Зеленые квадраты», принадлежащие определенной рубрике не получится. Был для этого плагин TDO Tag Fixed (совместимость заявлена до 2.5, на 2.8.х я его не пробовала).

Используем метки + плагин xili-tidy-tags

Схема такая же, как и описанная выше + мы имеем возможность вывести несколько облаков меток, сгуппированных по признакам.

Т.е задача плагина xili-tidy-tags — помочь сгруппировать метки в группы. Плагин позволяет вывести виджетом облако меткок определенной группы меток или двух определенных групп. Группы меток можно «вкладывать» одну в другую (глубина, правда, всего 1 уровень: parent & child). Неудобство в том, что каждую метку нужно привязать к группе вручную.

Что получилось:

плагин xili-tidy-tags

плагин xili-tidy-tags

Кстати, хороший способ разделить метки на группы «русские» и «английские» для мультиязычных блогов, xili-tidy-tags хорошо совместим с плагином xili-language, подробности тут (англ.)

Есть шоткоды, котоыми можно вывести облако группы меток прямо в пост:

[xili-tidy-tags params="tagsgroup=color&largest=10&smallest=10" glue=" | "]

или так (без виджета):

<?php if (function_exists('xili_tidy_tag_cloud'))
xili_tidy_tag_cloud('tagsgroup='.single_cat_title('',false).'&tagsallgroup=color&largest=18');
?>

Пользовательские таксономии

В статье Custom Taxonomies in WordPress 2.8 рассматривается процесс создания таксономии без плагина. Отличный подробный туториал с картинками. К сожалению, таксономия получается слишком «простой» :( Ни тебе иерархии, ни группировки записей по нескольким терминам. Зато в админ. панели все красиво:

simple taxonomies

custom taxonomies

Для создания такой таксономии добавляем в functions.php (в папке Темы):

add_action( 'init', 'create_my_taxonomies', 0 );
function create_my_taxonomies() {
register_taxonomy( 'color', 'post', array( 'hierarchical' => false, 'label' => 'Цвет', 'query_var' => true, 'rewrite' => true ) );
register_taxonomy( 'size', 'post', array( 'hierarchical' => false, 'label' => 'Размер', 'query_var' => true, 'rewrite' => true ) );
register_taxonomy( 'forma', 'post', array( 'hierarchical' => false, 'label' => 'Форма', 'query_var' => true, 'rewrite' => true ) );
}

Для использования такой таксономии нужно включить ЧПУ (шаблон любой), если ЧПУ у вас по умолчанию, то заменить в приведенном выше коде 'rewrite' => trueна 'rewrite' => false

Ссылки на посты с термином Цвет » зеленый :http://site.ru/color/zelenyi/

Ссылки на посты с термином Размер » большой :http://site.ru/size/bolshoi/

Слаги (короткие ссылки) терминов можно редактировать таким же образом, как и обычные метки. Но лучше сразу поставить плагин rus-to-lat, чтобы слаги транслитировались при создании термина.

Что нам все это дает?

Вывод в записи терминов (цвета), которыми помечена запись:

<?php echo get_the_term_list( $post->ID, 'color', 'Цвета: ', ', ', '' ); ?>

выводим облако с о списком форм:

<?php wp_tag_cloud( array( 'taxonomy' => 'size', 'number' => 45 ) ); ?>

Выводим записи с «зеленым» цветом:

<?php query_posts( array( 'color' => 'zelenyi', 'showposts' => 10 ) ); ?>

Создаем специальный шаблон taxonomy.phpкоторый будет использован ВордПрессом при просмотре термина (например по ссылке http://site.ru/color/zelenyi/)

Отображение названия термина: <?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term->name; ?>

Показываем описание термина: <?php echo term_description( '', get_query_var( 'taxonomy' ) ); ?>

Чтобы в описании термина можно было использовать форматирование functions.php Темы дописываем:

remove_filter( 'pre_term_description', 'wp_filter_kses' );

Скудно, но для определенных целей пригодится, например автор статьи «Custom Taxonomies in WordPress 2.8» приводит в пример сайт с обзором фильмов, активно использующего пользовательскую таксономию: http://popcritics.com/movies/. А тут довольно подробно рассматривается процесс создания этого сайта: «Using custom taxonomies to create a movie database».

Для нелюбящих копаться в коде есть плагин Simple Taxonomies.

Вспомогательный плагин GD Taxonomies Tools

Плагин отображает все имеющиеся у вас таксономии, добавляет урлы таксономий в /xml карту сайта (должен быть установлен плагин XML Sitemap Generator), удаляет термины если таксономия удалена (настраивается), а также позволяет использовать виджеты, с помощью которых выводятся термины из всех типов таксономий, на выбор: пользовательские (созданные вами), рубрики, метки и рубрики ссылок.

gd-taxonomies-tools

Виджет gdTT Terms Cloud

виджет gdtt terms cloud

виджет gdtt terms cloud

Остается ждать, когда же custom taxonomies станут hierarchical и/или их можно будет «скрещивать» :(

Нашла ещё интересный способ группировки записей с использованием custom fields (плагин Custom Field Taxonomies), напишу в отдельном посте.


Комментариев: 28, оставить свой »

Страницы: [2] 1 » Показать все

  1. # 28 Гоблин (1) 10.03.2010 в 02:42

    Собака — друг человека!

  2. # 27 Человек (1) 09.03.2010 в 14:23

    Шаг 2. Теперь нам необходим бекграунд. У каждого своё представление, как выглядит ад, но я ограничилась предложенным гуглом вариантом. На запрос «fire wallpaper» он выдал подходящее изображение:

  3. # 26 Петр Петрович (1) 09.03.2010 в 14:15

    Шаг 4. Теперь приступим к обрезке изображения. Для этого активируем инструмент «Свободное выделение» и действуем. Выделяем не саму фигуру, а фон, который нужно удалить. Теперь имеем изображение лица без ненужного заднего фона:

  4. # 25 Иван Иванович (1) 09.03.2010 в 14:11

    Шаг 3. Для того, чтобы поместить своё лицо на фоне бэкграунда, необходимо обрезать чёрный фон фотографии. Но, чтобы после обрезания удалённая область изображения была прозрачной, кликаем правой клавишей на слое «Face» и выбираем позицию «Добавить альфа-канал».

  5. # 24 gers 05.03.2010 в 20:50

    Привет. Спасибо за тему.

  6. # 23 Ильшат (1) 05.03.2010 в 03:43

    спасибо за подборку, попробовал Custom Taxonomy. очень неудобно, что при мере печати тега в админке, существующие не «всплывают». не знаете, можно это как-то сделать? в плагинах тоже так не делается?

  7. # 22 Олег (2) 20.02.2010 в 15:38

    Извиняюсь... ступил :) уже разобрался...

  8. # 21 Олег (2) 08.02.2010 в 18:01

    Уважаемая sonika... как в плагине xili-tidy-tags, в пост вывести метку, с определённой группы меток, которая преналдежит к этому посту...

    Пример: — группа меток city к ней принадлежат метки kiev, moskva, minsk... Есть пост на который назначена метка только kiev... и внизу поста надо чтоб выводило не все метки а только метку kiev группы city...

Страницы: [2] 1 » Показать все

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


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


Subscribe without commenting

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

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