Логин: Пароль: Забыли пароль? Регистрация
Рекламный блок

              

Страница 1 из 11
Форум » FOR WEB-MASTER`S » Учебник » Применение таксономий(WordPress)
Применение таксономий(WordPress)
sg-uaДата: Четверг, 10.02.2011, 18:22 | Сообщение # 1

Репутация: 0
Сообщений: 250
Награды: 0
Статус:
Таксономии, появившиеся в WordPress 2.8, позволяют создавать собственные версии рубрик и меток. Это означает, что вы можете обладать, к примеру, несколькими наборами меток, что серьезным образом влияет на процесс разработки.

С помощью таксономий можно получить более обстоятельный контроль над размечиванием и рубрикацией записей. По умолчанию в панели администратора WordPress имеется две таксономии – одна под названием Рубрики, а вторая под названием Метки. Если вас не устраивает сложившийся порядок, можно воспользоваться таксономиями и создать, к примеру, несколько разделов, обладающих своими собственными наборами меток.

Естественно, в WordPress предусмотрен шаблон для таксономий, называемый taxonomy.php. Шаблоны taxonomy-X.php не поддерживаются. Если вы хотите выполнить обработку какой-либо конкретной метки таксономии, вам понадобится написать отдельный PHP-сниппет.

Допустим, вы хотите создать сайт, посвященный видеоиграм. Основное ваше внимание сосредоточено на трех видах консолей – Xbox 360, PlayStation 3 и Wii. Вы решили, что на сайте должно быть три рубрики – новости, обзоры и превью.

Игры могут быть разработаны как для нескольких платформ одновременно, так и только для одной. К примеру, игры из серии Super Mario могут быть запущены только на Nintendo платформе (к которой относится Wii). Регулярная разметка в данном случае не подойдет, поскольку одна и та же игра может быть выпущена сразу на нескольких платформах. Решим данную проблему с помощью таксономий.

1. При помощи таксономий создадим разметку для каждой из имеющихся игровых платформ: Xbox 360, PlayStation 3 и Wii. В данном случае, к каждой из платформ будет привязана собственная разметка, позволяющая в дальнейшем выводить независимые облака тегов. Следовательно, какую-либо из игр можно будет разместить в качестве метки сразу в нескольких таксономиях, избежав загромождения.

Собственные таксономии создаются в файле functions.php. Для нашего примера код будет выглядеть следующим образом:

add_action( 'init', 'videogames', 0 );
function videogames() {
register_taxonomy( 'xbox360', 'post', array( 'hierarchical' => false, 'label' => 'Xbox 360', 'query_
var' => true, 'rewrite' => true ) );
register_taxonomy( 'playstation3', 'post', array( 'hierarchical' => false, 'label' => 'PlaySta-
tion 3', 'query_var' => true, 'rewrite' => true ) );
register_taxonomy( 'wii', 'post', array( 'hierarchical' => false, 'label' => 'Wii', 'query_var' => true,
'rewrite' => true ) );
}

В первой строке производится инициализация функции videogames. Далее следует сама функция, определяющая новые таксономии. Рассмотрим одну из них, к примеру, для Xbox 360:

register_taxonomy( 'xbox360', 'post', array( 'hierarchical' => false, 'label' => 'Xbox 360', 'query_var'
=> true, 'rewrite' => true ) );

Первый параметр определяет название таксономии, второй – тип контента (сейчас WordPress поддерживает пока только таксономии для записей, однако весьма возможно, что в дальнейшем будет введена поддержка также для ссылок и страниц). Далее следует массив, в котором определяется параметр hierarchical. В данном случае он установлен в false, что означает, что поведение таксономии будет похоже на поведение меток. Если бы он был установлен в true, поведение таксономии стало бы аналогично поведению рубрик, однако в нашем примере этого не требуется (к слову говоря, оно не работало в WordPress 2.8). Следующий параметр, устанавливаемый в массиве, – label, – определяет название метки. Далее идет переменная Query_var, которой передается значение true, в результате чего она возвращает название таксономии (первый параметр). Эта переменная чаще всего используется вместе с Wp_tag_cloud (). Вместо true можно установить любое другое значение. Наконец, последний параметр, rewrite, определяет, нужно ли создавать постоянную ссылку на основе URL таксономии. Иными словами, если у вас имеется метка The Super Game в таксономии Xbox 360, то вы получите или ссылку по умолчанию domain.com/?xbox360=the-super-game, или постоянную ссылку domain.com/xbox360/the-super-game, которая выглядит более симпатично.

2. Теперь, когда таксономии заданы, можно начать работу с ними. Чтобы получить список меток или ссылок для отдельной записи, достаточно использовать функцию get_the_term_list (), которая выполняет те же самые действия, что и тэг шаблона the_tags (). Задается она следующим образом:

<?php echo get_the_term_list( $post->ID, 'xbox360', 'Xbox 360 games: ', ', ', '' ); ?>

Первый параметр функции get_the_term_list () – это ID записи, к которой будет применяться таксономия. Далее следует название таксономии и текст, который будет выведен непосредственно перед списком.

С помощью the_terms () можно выполнять схожие действия, однако с одним отличием – метки не будут являться ссылками.

3. Теперь выведем облако тегов для таксономии xbox360, в котором будет представлено 25 меток (являющихся играми в нашем примере):

<?php wp_tag_cloud( array( 'taxonomy' => 'xbox360', 'number' => 25 ) ); ?>

В массиве передаются параметры taxonomy и number. Первый из них определяет имя таксономии, а второй – количество меток в облаке тегов.

4. Имеется возможность поместить таксономию в цикл. Делается это при помощи query_posts () :

<?php query_posts( array( 'xbox360' => 'the-super-game', 'showposts' => 25 ) ); ?>

Здесь мы запрашиваем записи, помеченные the-super-game в таксономии xbox360, и затем выводим 25 из них.

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

 
C1ev3rДата: Четверг, 10.02.2011, 18:29 | Сообщение # 2

Репутация: 1
Сообщений: 107
Награды: 0
Статус:
Спасибо,выкладываешь отличную инфу.
 
Форум » FOR WEB-MASTER`S » Учебник » Применение таксономий(WordPress)
Страница 1 из 11
Поиск:


Статистика форума Zorend.ru
Последние темы Популярные темы Лучшие пользователи Новые пользователи Звезды ZOREND`a
Глобальное обновление
Пара Анекдотов
Правила раздела
Считаем до 1000
Какая видео карта сейчас нормальная?
WebThumb 2.0 - Обмен посетителями на ваш сайт
халявные Icq налетай!
Аву плиз
 Считаем до 1000
 Конкурс "Уникальный человек"
 Участники конкурса "Уникальный человек"
 Играем в города :)
 Ваш аппарат
 Жалобы на участников конкурса "Уникальный человек"
 Зимняя шапка.
 Смайлики
Timoha - (Сообщений: 1091)
cook - (Сообщений: 1056)
pikus - (Сообщений: 1012)
Adrianoosem - (Сообщений: 419)
n1ceman - (Сообщений: 319)
b0ot - (Сообщений: 313)
sg-ua - (Сообщений: 250)
Аватар - (Сообщений: 250)
Alisasslom - (Зарегистрирован: 20.07.2015)
donkj4 - (Зарегистрирован: 20.07.2015)
meroslEr - (Зарегистрирован: 20.07.2015)
MelvinRat - (Зарегистрирован: 20.07.2015)
randiew16 - (Зарегистрирован: 20.07.2015)
ArthurGers - (Зарегистрирован: 20.07.2015)
CharlesCida - (Зарегистрирован: 20.07.2015)
guydd11 - (Зарегистрирован: 20.07.2015)
friendgog - (Репутация: 1187)
cook - (Репутация: 1004)
b0ot - (Репутация: 500)
pikus - (Репутация: 201)
Вадим - (Репутация: 102)
Timoha - (Репутация: 7)
-Wicked - (Репутация: 5)
plan - (Репутация: 5)