Таксономия в 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-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 рассматривается процесс создания таксономии без плагина. Отличный подробный туториал с картинками. К сожалению, таксономия получается слишком «простой» :( Ни тебе иерархии, ни группировки записей по нескольким терминам. Зато в админ. панели все красиво:

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), удаляет термины если таксономия удалена (настраивается), а также позволяет использовать виджеты, с помощью которых выводятся термины из всех типов таксономий, на выбор: пользовательские (созданные вами), рубрики, метки и рубрики ссылок.

Виджет gdTT Terms Cloud

виджет gdtt terms cloud
Остается ждать, когда же custom taxonomies станут hierarchical и/или их можно будет «скрещивать» :(
Нашла ещё интересный способ группировки записей с использованием custom fields (плагин Custom Field Taxonomies), напишу в отдельном посте.

Собака — друг человека!
Шаг 2. Теперь нам необходим бекграунд. У каждого своё представление, как выглядит ад, но я ограничилась предложенным гуглом вариантом. На запрос «fire wallpaper» он выдал подходящее изображение:
Шаг 4. Теперь приступим к обрезке изображения. Для этого активируем инструмент «Свободное выделение» и действуем. Выделяем не саму фигуру, а фон, который нужно удалить. Теперь имеем изображение лица без ненужного заднего фона:
Шаг 3. Для того, чтобы поместить своё лицо на фоне бэкграунда, необходимо обрезать чёрный фон фотографии. Но, чтобы после обрезания удалённая область изображения была прозрачной, кликаем правой клавишей на слое «Face» и выбираем позицию «Добавить альфа-канал».
Привет. Спасибо за тему.
спасибо за подборку, попробовал Custom Taxonomy. очень неудобно, что при мере печати тега в админке, существующие не «всплывают». не знаете, можно это как-то сделать? в плагинах тоже так не делается?
Извиняюсь... ступил :) уже разобрался...
Уважаемая sonika... как в плагине xili-tidy-tags, в пост вывести метку, с определённой группы меток, которая преналдежит к этому посту...
Пример: — группа меток city к ней принадлежат метки kiev, moskva, minsk... Есть пост на который назначена метка только kiev... и внизу поста надо чтоб выводило не все метки а только метку kiev группы city...