Таксономия wordpress


Многие люди считают WordPress инструментом исключительно для блоггинга, потому как в ВП есть записи, рубрики, теги и т.д. Чего большинство из них не знает, так это того, что все записи, рубрики и теги могут быть заменены произвольными типами записей и произвольными таксономиями. В этой статье мы покажем вам как создать произвольную таксономию в WordPress, а также как вывести эту таксономию в своей теме WordPress.

Что такое таксономия?

Таксономия в WordPress — это одна из тех вещей, которую все используют, но не знают, что они используют именно ее. Таксономии WordPress используются для группировки записей и произвольных типов записей между собой. В ВП есть две самых популярных таксономии, которые люди постоянно используют: Рубрики и Теги. Можно использовать произвольные таксономии для создания произвольных групп и объединения их под одним «началом». Например, у вас есть произвольный тип записи под названием Книги. Даже если вы используете рубрики, возможно вы не хотите смешивать два вида Книг между собой, потому что они в корне отличаются друг от друга.


я решения этой проблемы можно зарегистрировать новую произвольную таксономию под названием Тематики. Можно добавить термы тематик типа: Приключения, Романы, Фантастика и т.д. Это позволит вам и вашим пользователям сортировать книги по тематикам. Таксономии также могут иметь иерархию, что означает у вас могут быть основные тематики типа: Фентези, Фантастика и Детские. А уже у этих тематик могут быть подтемы в каждой рубрике, как например в разделе Фентези могут быть триллеры в виде подтемы.

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

Создание произвольных таксономий — Простой способ

Давайте же начнем создание произвольной таксономии. Первым делом вам необходимо установить и активировать плагин Simple Taxonomy. Далее, переходим в раздел Настройки » Custom Taxonomies где и создаем новую:

create-taxnomy-screen[1]

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


Третья опция позволяет ассоциировать эту таксономию с типом записей, а последняя — разрешит указать, нужно ли добавлять термы автоматически, выберите none.

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

translate-taxonomy[1]

После указания переводов для интерфейса, нажмите на кнопку Add Taxonomy. После того, как произвольная таксономия будет создана, она появится под меню Записи и будет выглядеть так же как и Рубрики, и Теги. Также поле произвольной таксономии появится в в окне редактора записей.

custom-taxonomy-post-edit[1]

Создание произвольных таксономий вручную

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


  //хук в init action и вызов create_book_taxonomies когда хук сработает  add_action( 'init', 'create_topics_hierarchical_taxonomy', 0 );    //задаем название для произвольной таксономии Topics для ваших записей    function create_topics_hierarchical_taxonomy() {    // Добавляем новую таксономию, делаем ее иерархической вроде рубрик  // также задаем перевод для интерфейса     $labels = array(   'name' => _x( 'Topics', 'taxonomy general name' ),   'singular_name' => _x( 'Topic', 'taxonomy singular name' ),   'search_items' => __( 'Search Topics' ),   'all_items' => __( 'All Topics' ),   'parent_item' => __( 'Parent Topic' ),   'parent_item_colon' => __( 'Parent Topic:' ),   'edit_item' => __( 'Edit Topic' ),   'update_item' => __( 'Update Topic' ),   'add_new_item' => __( 'Add New Topic' ),   'new_item_name' => __( 'New Topic Name' ),   'menu_name' => __( 'Topics' ),   );    // Теперь регистрируем таксономию     register_taxonomy('topics',array('post'), array(   'hierarchical' => true,   'labels' => $labels,   'show_ui' => true,   'show_admin_column' => true,   'query_var' => true,   'rewrite' => array( 'slug' => 'topic' ),   ));    }  

Для создания не-иерархической произвольной таксономии типа Теги, добавьте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress (рекомендуется):


  //хук в init action и вызов create_topics_nonhierarchical_taxonomy когда хук сработает    add_action( 'init', 'create_topics_nonhierarchical_taxonomy', 0 );    function create_topics_nonhierarchical_taxonomy() {    // Задаем названия для интерфейса     $labels = array(   'name' => _x( 'Topics', 'taxonomy general name' ),   'singular_name' => _x( 'Topic', 'taxonomy singular name' ),   'search_items' => __( 'Search Topics' ),   'popular_items' => __( 'Popular Topics' ),   'all_items' => __( 'All Topics' ),   'parent_item' => null,   'parent_item_colon' => null,   'edit_item' => __( 'Edit Topic' ),   'update_item' => __( 'Update Topic' ),   'add_new_item' => __( 'Add New Topic' ),   'new_item_name' => __( 'New Topic Name' ),   'separate_items_with_commas' => __( 'Separate topics with commas' ),   'add_or_remove_items' => __( 'Add or remove topics' ),   'choose_from_most_used' => __( 'Choose from the most used topics' ),   'menu_name' => __( 'Topics' ),   );    // Теперь регистрируем НЕ-иерархическую таксономию вроде Тегов     register_taxonomy('topics','post',array(   'hierarchical' => false,   'labels' => $labels,   'show_ui' => true,   'show_admin_column' => true,   'update_count_callback' => '_update_post_term_count',   'query_var' => true,   'rewrite' => array( 'slug' => 'topic' ),   ));  }  

Обратите внимание на различия между двумя кодами. Значение для параметра иерархии — true для таксономии типа Рубрики, и false — для таксономий типа Тегов. Также в массиве названий для НЕ-иерархической таксономии типа Тегов мы добавили null для параметров parent_item и parent_item_colon, что означает, что в интерфейсе ничего не будет отображаться при создании родительского элемента.


Выводим произвольные таксономии

Вот так можно вывести термы, которые вы добавили в произвольную таксономию на отдельной странице записи. Добавьте следующую строку кода в свой файл single.php внутри цикла:

  <?php the_terms( $post->ID, 'topics', 'Topics: ', ', ', ' ' ); ?>  

Можно добавить его в другие файлы, такие как archive.php, index.php, и в другое место по необходимости, где нужно вывести таксономию.

По-умолчанию ваши произвольные таксономии используют шаблон archive.php для отображения записей. Однако, вы можете создать собственный архив для их отображения по такому принципу — taxonomy-{taxonomy-slug}.php.

Произвольные таксономии могут использовать различными способами. Совмещение их с произвольными типами записей и произвольными мета-блоками помогут вам создать хорошо настраиваемую систему управления контентом (CMS), которая максимально будет соответствовать вашим задачам.

Напишите, как вы используете произвольные таксономии на своих сайтах.

По всем вопросам и отзывам просьба также писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

wpincode.com

1. Стандартные таксономии в WordPress


Рубрики и метки

Что-то мне подсказывает, что если вы читаете этот пост, то вы уже представляете, что такое рубрики (категории) и метки (теги), что у рубрик есть иерархия, у меток нет и так далее.

А теперь мне нужно донести одну важную мысль.

В WordPress есть своя группа функций для работы с рубриками и отдельная группа функций для работы с метками. Наверняка с какими-то из них вы уже знакомы.

Чуть выше мы с вами определили, что и рубрики и метки являются таксономиями, а это значит, что при работе как с теми, так и с другими вы можете спокойно использовать функции таксономий. Я например так и делаю.

Рубрики ссылок

Если рубрики и метки в WordPress были нужны для группировки записей, то данная таксономия, как понятно из названия — для группировки ссылок.

Если вы недавно установили WP, то вы не найдёте их у себя в админке. Дело в том, что с версии 3.5 ссылки по умолчанию сделали отключенными. Но не удалили — вставьте следующий код в файл functions.php вашей темы и ссылки вновь появятся у вас в админке. Вполне возможно, что вы найдете им применение.

Форматы постов

Форматы на самом деле с трудом можно назвать таксономией, но фактически это так. На моём блоге им посвящён отдельный пост.

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


И вот в один прекрасный день наступает момент, когда нам начинает не хватать стандартных рубрик и меток для группировки записей…

Чуть подробнее про регистрацию таксономии

Техническую сторону регистрации я подробно описал в статье про функцию register_taxonomy(). Сейчас же мы рассмотрим несколько моментов.

  • Регистрация таксономии бывает нужна, когда требуется добавить еще один критерий группировки постов, в особенности — произвольных типов постов.

    Пример: вы зарегистрировали тип записей — Автомобили, и их нужно группировать скажем по марке, стране и по объему двигателя (хотя объем лучше затолкать в произвольные поля).

  • При регистрации не забудьте указать типы постов (записи, страницы, автомобили..), для которых вы хотите добавить эту новую таксономию.

Как присваивать таксономии к различным типам записей

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

Если же изменение параметров регистрирующей функции не в вашей власти (возьмем те же рубрики и метки), тогда вы можете и должны использовать register_taxonomy_for_object_type().


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

Другие примеры смотрите в описании функции, ссылку на которое я дал вам выше.

Вывод таксономий в виде списка

Вы знакомы с функцией wp_list_categories()? Если нет, то наверняка видели, как на блогах рубрики выводятся в столбик в виде списка (иногда еще справа в скобках указывается количество постов в рубрике).

Самое интересное, что функция wp_list_categories() позволяет выводить элементы любой таксономии, достаточно лишь указать название таксономии в параметрах функции.

Где же брать название таксономии?

  • Если таксономию создавали вы сами, то этот вопрос у вас не должен возникать.
  • Если же нет, то просто откройте страницу этой таксономии и посмотрите на ссылку в браузере:

Более сложный, но в то же время более удобный и настраиваемый вариант — функция get_terms(). Если бы мне предложили выбрать любимую функцию из кодекса, я бы выбрал её — она реально потрясающая.

Вывод постов из таксономии

Тут нам безусловно поможет WP_Query с параметром tax_query. Подробное описание и примеры смотрите здесь.

3. Плагины для работы с таксономиями

Сам я придерживаюсь мнения, что в данном случае лучше обойтись без лишних плагинов, тем не менее вот некоторые бесплатные варианты:

  • Simple Taxonomies by Yoast,
  • Pods,
  • Types.

misha.blog

Таксономия WordPress: работа с терминами

От автора: Концепция таксономий и терминов в WordPress нераздельна. Чуть ниже я более подробно расскажу об этом. По моему мнению, чтобы работать с терминами, необходимо понимать, что представляют собой таксономии и термины, и как они взаимодействуют. Иначе как мы будем уверены, что все делаем правильно на программном уровне?

В этой серии из двух статей мы с вами узнаем, что такое таксономии, их роль в WordPress, а также, что их связывает с терминами. И чуть позже мы обратим внимание на понятие терминов, а также научимся работать с term metadata API.

Рекомендую ознакомиться с предыдущими моими статьями, если вы еще этого не сделали. В них я объясняю принцип работы API, с которым мы будем работать. Если же вы не хотите тратить свое время на это, в принципе, ничего страшного. В этой серии мы подробно разберем все, что вам будет нужно.

Что такое таксономии?

Определение из кодекса: «В WordPress «таксономии» — это механизм группировки нескольких постов (ссылок или постов пользовательского типа).»

Это слово мы слышим нечасто. Иногда люди даже теряются, когда начинают говорить о таксономиях и терминах. Другими словами, люди используют пример фразы в качестве таксономии, но на самом деле это всего лишь термин. Чуть ниже я объясню это предложение.

Говоря простым языком, таксономии – это способы группировки вещей. В WordPress после установки есть две таксономии: категории и теги. Ниже мы разберем каждую таксономию более подробно.


Таксономия wordpress

Есть один нюанс, по крайней мере, в WordPress: таксономии могут быть иерархическими и неиерархическими. Самый понятный пример вышесказанного:

В этом и заключается разница иерархической и неиерархической таксономии. Вроде бы легко, правда? Если поддерживаются дочерние элементы, как в категориях, это иерархическая таксономия. Если же дочерние элементы не поддерживаются, как в тегах, это неиерархическая таксономия.

Таксономия wordpress

В этой серии статей умение различать таксономии не играет большой роли, разве что это поможет лучше понять этот язык в процессе разработки.

Но когда мы начнем программно создавать таксономии и прикреплять к ним термины, у нас не должно возникнуть сомнения в том, что мы делаем.

Что такое термины?

С таксономиями мы разобрались, а что такое термины? Из кодекса: «Термины в WordPress – это классификация, группа или подмножество таксономии, где последнее может быть категорией, тегом или пользовательской таксономией. По умолчанию у терминов есть заголовок, краткий заголовок URL адреса и описание. Иерархические таксономии, такие как категории, могут создавать родительские термины.»

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

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

Это не означает, что в таксономиях нет информации, относящейся к терминам. К примеру, у таксономии есть название, тип поста, с которым она ассоциируется, а также ряд аргументов, которые выходят за рамки этой статьи. В следующей статье мы подробно их рассмотрим.

Как связаны термины и таксономии?

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

Таксономия wordpress

К примеру, можно иметь таксономию Категории, но в ней должен быть хотя бы один термин. Именно поэтому в WordPress по умолчанию есть термины без категорий (Uncategorized).

Таксономия wordpress

Но также можно создать таксономию Теги и не хранить ни одного тега в базе данных. Можем ли мы, как разработчики, как-то расширить данную систему? Как термины, так и таксономии могут быть созданы программно, однако пользователи также могут создавать и добавлять их. По крайней мере, если в пользовательском интерфейсе есть такая возможность.

Конкретный пример: С помощью интерфейса WordPress все мы можем создавать категории и теги. Но если вы программист и хотите переместить отдельные таксономии и термины в базу данных, вы можете сделать так, чтобы пользователи не смогли больше добавлять и удалять их через интерфейс.

Что такое Term Metadata?

Мы уже поняли, что такое таксономии и термины, а также разницу между ними, и остался один вопрос: Зачем нужны term metadata? Или по-другому в чем смысл term metadata?

Хороший вопрос. Возможно, именно поэтому данной функции не было до WordPress 4.4. Что еще интереснее, так это то, что об этой функции объявили больше 6 лет назад. Главная причина, по которой еще 6 лет назад заговорили о метаданных терминов была:

«На данный момент нет конкретного способа хранения дополнительных данных в таксономиях. Разработчикам плагинов приходится создавать методы для хранения таких данных. К примеру, можно хранить данные в зашифрованном виде в поле описания или использовать метод set_option(). Новая функция не помешала бы, к примеру, add_taxonomy_data() / get_taxonomy_data().»

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

Таксономия wordpress

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

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

Заключение

На данный момент вы знаете все, что вам пригодится для работы с терминами и таксономиями. Когда вы будете писать плагин, тему или что-либо еще для клиента, вам, скорее всего, придется несколько раз открыть кодекс. Даже для опытного разработчика это нормальная практика.

В следующей статье мы научимся работать с метаданными терминов: разберем конкретный пример кода, добавим этот код в одну из тем по умолчанию, будем вносить изменения и следить за базой данных.

Автор: Tom McFarlin

Источник: http://code.tutsplus.com/

Редакция: Команда webformyself.

Таксономия wordpress

webformyself.com

Таксономии – это то, что переносит WordPress за пределы простой блог-платформы в реальности CMS.

Но как они хранятся в базе данных?

Таксономии и Термины – мощный инструмент WordPress, который позволяет добавлять больше гибкости вашим сайтам. Они относятся к двум другим типам контента: посты и ссылки. Структура базы данных означает, что это связь один ко многим, где один пост может иметь несколько терминов по нескольким таксономиям, и один термин может быть присвоен нескольким постам или ссылкам.

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

Характеристики

Таксономии

Таксономия – это система классифицированных или разложенных по категориям вещей, как правило, иерархически. Самая известная таксономия – Таксономия Линнея, используемая для классификации живых существ.

В WordPress Таксономии используются для классификации ваших данных и группировки их в множества и подмножества.

WordPress имеет три встроенные таксономии:

  • Рубрика
  • Метка
  • Ссылка рубрики

Рубрики и метки немного похожи на посты и страницы тем, что они одного типа контента (таксономии), но по умолчанию ведут себя по-разному, а именно: рубрики — иерархичны, а метки – нет.

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

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

Термины

У каждой таксономии будут термины, которые вы сможете использовать для сортировки данных. Рубрика – это всего лишь термин в таксономии рубрик, и метка – это термин в рубрике меток. После того как вы создадите таксономии, вы создадите термины для них либо с использованием консоли WordPress, либо с помощью функции wp_insert_term ().

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

Как WordPress хранит Таксономии и Термины

Как я уже описывал в руководстве по связям между данными, WordPress использует связь «многие-ко-многим». Эта связь создается с использованием трех таблиц:

  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms

эти таблицы приведены ниже, наряду с таблицами показаны их связи к wp_posts и wp_links.

working-with-data-in-wordpress-terms-table-and-related-tables

Давайте посмотрим на каждую из таблиц и узнаем, как они работают.

Таблица wp_terms

Таблица wp_terms хранит все индивидуальные термины для ваших рубрик, меток, ссылок рубрик и пользовательских таксономий. У нее всего лишь четыре поля:

  • term_id – это уникальный ID для термина
  • name (имя)
  • slug (ярлык)
  • term_group – это поле, которое в настоящий момент не используется WordPress, поэтому вы можете спокойно пропустить его.

Таблица wp_term_taxonomy

Таблица wp_term_taxonomy хранит больше данных о терминах, а также о таксономиях, частью которых они являются. У нее шесть полей:

  • term_taxonomy_id – хранит ID, относящийся к записи в этой таблице
  • term_id отображает ID термина, связанный с его записью в таблице wp_terms
  • taxonomy – название таксономии, внутри которой находится термин
  • description (описание)
  • parent – ссылается на родительский термин для данного термина, если таксономия является иерархической, и он может быть только один.
  • сount – количество постов с термином.

Во многих установках WordPress будет одна запись в таблице wp_term_taxonomy для каждого термина в таблице wp_terms, но в некоторых случаях может быть более одной записи для каждого термина. Это происходит в том случае, когда вы создаете два термина с одинаковыми именами и ярлыками в разных таксономиях. Это означает, что вы можете создать запрос для вывода постов с этим термином в нескольких таксономиях.

Это означает, что связь между этими двумя таблицами «один-ко-многим»: одна запись в таблице wp_terms может быть связана с несколькими записями в таблице wp_term_taxonomy, но каждая запись в таблице wp_term_taxonomy связана только с одной записью в wp_terms.

Таблица wp_term_relationships

Таблица wp_term_relationships является ключевой в создании связи «многие-ко-многим» между объектами и терминами. У нее всего лишь три поля:

  • object_id (связан с post_id в таблице wp_post или с link_id в таблице wp_links)
  • term_taxonomy_id (связан с аналогичным полем в таблице wp_term_taxonomy)
  • term_order (это порядок, в котором термины были добавлены к объекту. Он используется только в том случае, если вы задали такой тип инструмента, который будет истинным, когда вы зарегистрировали таксономию – по умолчанию имеет значение «Ложь» и значение по умолчанию для этого поля 0.

Поскольку каждый объект может быть связан с несколькими записями в таблице wp_term_relationships, таким же образом может быть связан и термин, это создает связь «многие-ко-многим».

Итог

Связи между объектами (т.е. постами и ссылками) и терминами являются мощным инструментом отчасти потому, что эта единственная связь «многие-ко-многим», которая используется в WordPress.

Понимание того, как эта связь работает и где хранится ключевая информация, поможет вам понять, как работают таксономии и термины и как использовать функции, связанные с ними.

 

Источник: code.tutsplus.com

onwp.ru

Конкретный пример создания новых таксономий для медиафайлов в WordPress

Если вы давно пользуетесь WordPress, то наверняка заметили, что в нем нельзя присвоить рубрики и метки для фотографий и картинок. В этом смысле произвольная и стандартная таксономия вордпресс – очень удобный инструмент. Внедрив таксономию, можно упорядочить записи, рубрики, и провести их классификацию. и классифицировать их по тегам и рубрикам. Как добавить таксономию в Вордпресс и прикрепить ее к типу записи?

Сначала откройте файл functions.php шаблона вашей темы. Можно вносить изменения прямо в админпанели, в редакторе WordPress. Лучше для определения таксономий создать плагин, потому что, поменяв шаблон темы, плагин сохранится и вам не нужно будет прописывать таксономии заново — файл functions.php останется неизменным.

Подготовка к созданию таксономии для медиафайлов

На этом этапе вам нужно отредактировать страницу медиафайлов – стандартный шаблон этой страницы беден, в нем не назначены ни метки записи (медиа), ни рубрики, ни таксономии.

 function wptp_add_categorxes_to_attachicents() (    cegister_taxonoroy_for_object type( 'category', 'attachment' );    add_action( 'init' , 'wptp_add_categorie»_to_attachments' }; 

По умолчанию в WordPress не реализован выбор уже созданных рубрик и меток, но это положение можно изменить.

Рубрики медиафайлов

Выбор рубрик нужно начинать с включения их для прикрепленных файлов. Делается это, как я уже объяснял, функцией register_taxonomy_for_object_type(). Просто добавьте в файл плагина или functions.php шаблона темы такой php код:

 // apply tags to attachments    function wptp_add_tags_to_attachments () {    register_taxonomy_for_object_typo('post_tag', attachment' );    }    add_action( 'init' , 'wptp_add_tags_to_attachments' ); 

После этого действия необходимо сохранить файл и обновить страницу редактирования медиафайлов. Вы увидите, что рубрики теперь доступны.

Рубрики и метки медиафайлов

// register new taxonomy which applies to attachments  function wptp_add_locatlon_taxonomy() {  §labels = array(  name'	=>'Locations',  singular_name'=>'Location',  search_itcms '=>'Search Locations',  all_ltems'=>'All Locations',  parent_item'=>'Parent Location',  parent_item_colon'=>'Parent Location:',  edit_item'=>'Edit Location',  update_item'	=>'Update Location',  add_new_item'=>'Add New Location',  new_item_name'=>'New Location Name',  menu_name'	=>'Location',  'labels' => $labels,  'hierarchical' => true,  'quety_vat' => 'true',  'rewrite' => 'true',  'show_admin_column' => 'true',);  register taxonomy( 'location', 'attachment', $args );  add_action( 'init', 'wptp_add_location_taxonomy' ); 

Метки медиафайлов

Если вы предпочитаете оперировать с метками, или и с рубриками и метками, то, чтобы их создать, используйте ту же функцию. Добавьте в файл functions.php такой код:

// apply tags to attachments  function wptp_add_tags_to_ attachments () {  register _taxonomy_for object_type( 'post_tag', attachments' );  }  add_action ( 'init' , 'wptp_add_tags_to_ attachments' );

Теперь на странице редактирования медиафайлов вы увидите и метки.

Рубрики и метки медиафайлов

Также это действие добавит колонку с метками и в библиотеке медиафайлов.

Рубрики и метки медиафайлов

Создание собственной таксономии

Если вдруг существующие метки и рубрики не подходят для присвоения медиафайлам, то вы можете создать и зарегистрировать свою собственную таксономию. Для этого также используется параметр ‘attachment’, который применяется к типу записи.

К примеру, вам нужно сделать иерархическую таксономию под названием «Locations», и ваша задача — использовать ее для вывода всех изображений и классификации этих медиафайлов.

Использовав функцию register_taxonomy(), можно добавить в файл темы такой php код:

// register new taxonomy which applies to attachments  function wptp_add_locatlon_taxonomy() {  §labels = array(  name'	=>'Locations',  singular_name'=>'Location',  search_itcms '=>'Search Locations',  all_ltems'=>'All Locations',  parent_item'=>'Parent Location',  parent_item_colon'=>'Parent Location:',  edit_item'=>'Edit Location',  update_item'	=>'Update Location',  add_new_item'=>'Add New Location',  new_item_name'=>'New Location Name',  menu_name'	=>'Location',  'labels' => $labels,  'hierarchical' => true,  'quety_vat' => 'true',  'rewrite' => 'true',  'show_admin_column' => 'true',);  register taxonomy( 'location', 'attachment', $args );  add_action( 'init', 'wptp_add_location_taxonomy' ); 

При помощи этого фрагмента кода вы сделаете свою иерархическую таксономию и сможете использовать ее для прикрепленных медиафайлов.

А если возникла необходимость использовать таксономию для другого типа контента? Тогда вам нужно заменить в функции register_taxonomy() параметр ‘attachment’ на массив, содержащий все сокращения типов контента, которые вам нужно добавить:

register taxonomy( 'location', array ( 'attachment', 'post' ), $args ); 

Обновите страницу и увидите, как она изменилась после редактирования медиафайлов. Также вы увидите созданную таксономию:

Рубрики и метки медиафайлов

Так как в коде был аргумент ‘show_admin_column’, он тоже будет выводиться на странице библиотеки медиафайлов:

Рубрики и метки медиафайлов

На этом закончим – работы для вас много, но теперь вы знаете, что такое таксономия wordpress и сможете выводить метки, рубрики и типы записей, которые помогут при сортировке загруженных в библиотеку медиафайлов. До встречи!

seobid.net

На прошлом уроке мы создали новый тип записи post type book более подходящий для продажи книг, а на этом уроке научимся создавать для него таксономию в WordPress.

Таксономия нужна для того, чтобы структурировать новые типы записей или группировать стандартные посты в WordPress, разделяя их например по типу оформления, предназначения и характеристик. Новый тип записи требует регистрации своей таксономии — категории и меток. Все записи можно раскидать по своим категориям и присвоить им теги. Эти разделы можно назвать одним общим словом — таксономия.

Существуют стандартные таксономии — категории и теги, они уже есть в WordPress по умолчанию и пользовательские. Разработчики начинают создавать пользовательские таксономии для произвольных типов записей, когда не хватает дефолтных. На одном из уроков мы уже создавали произвольный тип записей — post type book, ссылка на него в начале статьи.

Рассмотрим на примере post type book, которому необходимо создать свою таксономию. Предположим мы продаем на сайте книги и необходимо отсортировать их по жанру, по цене, по возрасту читателя. Для каждого параметра надо создать свою WordPress таксономию, привязать к соответствующим постам (1 пост = 1 книга) и в дальнейшем организовать на сайте фильтрацию книг.

Для начала, давайте зарегистрируем свою первую таксономию. Давайте посмотрим пример регистрации таксономии на codex.wordpress.org. Скопируем оттуда функцию register_taxonomy(), откроем наш function.php и внутри функции function create_post_type(), добавим скопированный код и заменяем на свои значения.

register_taxonomy(
  'price',
  'book',
  array(
    'label' => __( 'price' ),
    'rewrite' => array( 'slug' => 'price' ),
    )
  );

Давайте зарегистрируем нашу первую таксономию price для типа записи book. Далее идет массив с настройками, в базовом примере стоит три настраиваемых параметра, их можно удалить и добавить новые, все возможные параметры есть в документации кодекса. Например параметр rewrite, можно удалить из кода регистрации, если slug (хвостик ссылки) совпадает с названием таксономии.

Теперь вы видите, что в админке у произвольного типа поста book появился параметр price.

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

register_taxonomy(
  'age',
  'book',
  array(
    'label' => __( 'age' ),
    'rewrite' => array( 'slug' => 'age' ),
   )
  );

По умолчанию в админ-меню сейчас показываются все созданные таксономии, чтобы убрать их оттуда, надо к коду выше после параметра rewrite с новой строки добавить параметр show_in_menu. Данный параметр совершенно не нужен в меню.

'show_in_menu' => false,

Если мы перейдем в редактирование «Добавить запись», то увидим два поля с двумя таксономиями, куда добавим свои метки.

Данный формат нам не совсем подходит, так как нет возможности выбрать для добавляемой книги, только одну цену и один возраст. Надо в код добавить ещё одну настройку hierarchical.

'hierarchical' => true,

Теперь книги можно отсортировать по цене и возрасту, осталось только вывести наши terms на сам сайт, пока мы их видим только в админ-панели. Для этого есть функция get_terms, которая выводит на страницу списки таксономий.

$terms = get_terms( array(
  'taxonomy' => 'price',
  'hide_empty' => false,
) );

Функция get_terms тоже принимает разные параметры, смотрите опять же в кодексе WordPress.

Для тех у кого не хватает терпения разбираться как устроена WordPress таксономия, но очень хочется увидеть конечный результат, то установите плагин, называется он: WordPress Meta Data and Taxonomies Filter (MDTF).

myrusakov.ru

Читабельные ссылки (ЧПУ) в своей произвольной таксономии

Если во вкладке «Настройки постоянных ссылок» (меню навигации в админ панели WordPress: «Настройки» > «Постоянные ссылки») выставлены настройки для показа пользователям «дружественных URL» (т.е. ЧПУ ссылок / человекопонятный урл / friendly url), то для работы новой таксономии обязательно требуется добавить следующий php код:

Кроме того, после внесения изменений в новую таксономию в файле functions.php, обязательно нужно «сохранить изменения» на странице админ панели WordPress: «Настройки» > «Постоянные ссылки». Иначе страница категорий с новой таксономии будет не найдена.

В данном случае таксономия работает при следующей настройке в постоянных ссылках:

Создание шаблона для таксономии

Для показа новых рубрик таксономии нужно создать следующий файл – taxonomy-person.php. В файле archive.php указываем путь к шаблону для новой рубрики таксономии. В моём случае, шаблон для таксономии, лежит в корневой директории шаблона WordPress:

Данный код имеет силу в общем шаблоне вида:

В файл taxonomy-person.php вносим содержимое файла archive.php с нужными изменениями, которые будут присущи новым категориям. Если ничего не меняется, то шаблон можно оставить таким же.

ploshadka.net

Таксономия WordPress

Давайте сначала разберемся, что такое рубрики и метки.

Таксономия WordPress — это рубрики, подрубрики и метки.

Их назначение — это сортировка контента для удобства пользования сайта.

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

Чем отличаются рубрики от меток

Рубрики группируют ваши записи по какому-либо широкому признаку. Они разъясняют читателю тему вашего сайта. Рубрики имеют иерархию, поэтому вы также можете создавать подрубрики.

Метки — это микроданные, они конкретизируют записи вашего блога. Метки не имеют иерархии.

Давайте разберем на примере:

У вас есть личный блог, рубриками которого могут быть: жизнь, учеба, еда, фильмы, музыка, путешествия.

Вы сделали пост о фильме, который недавно посмотрели, ему можно присвоить рубрику «Фильмы», а метки — комедия, рекомендую, Том Харди:)

Главное отличие рубрик от меток заключается в следующем: рубрику вы должны добавить обязательно, а вот метки уже по желанию. Когда вы не определяете рубрику вашему посту, он попадает в «без рубрики».

Еще одно отличие заключается в том, как выглядит ваша рубрика и метка (ссылки).

В случае использования настраиваемой структуры константной ссылки (URL), основной префикс выглядит по-разному.

Пример:

https://yoursite.com/category/films/

или

https://yoursite.com/tag/films/

Оптимальное количество рубрик

На ранних версиях WP (до 2.5) встроенная поддержка меток отсутствовала.

Из-за этого приходилось придумывать просто огромное количество рубрик, которые использовались для группировки постов по микроданным.

А уже потом создатели добавили метки.

Сказать, какое количество рубрик на сайте считается нормальным, а сколько уже перебор, невозможно. Это зависит от объема сайта.

Ориентируйтесь, в первую очередь, на структуру и удобство пользования.

И лучше добавляйте подрубрики и метки.

таксономия WordPress

Рубрики используются для создания групп постов. Сделайте сначала общие рубрики, а с ростом вашего сайта начинайте создавать подрубрики.

Наличие 40 рубрик бессмысленно, если, например, там будет всего 2-3 записи. А вот 5 рубрик с регулярно обновляющимся контентом будут смотреться куда лучше.

Когда создавать подрубрики

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

А если количество таких постов будет постоянно расти, логичнее будет добавить подрубрику «Интервью профессора» для вашей главной рубрики «Учеба».

Теперь вам нужно будет изменить все предыдущие посты.

В случае наличия структуры адреса вида category postname лучше использовать плагин переадресации, который будет вести пользователя на новый адрес.

Благодаря этому вы сохраните ранжирование постов в поисковых системах.

Использование подрубрик обязательно?

Нет, это не обязательно. Создание подрубрик объясняется лишь удобством пользования. Так что можете смело оставлять метку «Интервью профессора».

Можно ли назначать несколько рубрик для одного поста?

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

Это не совсем верно.

Не забывайте, что цель группировки контента — это удобство пользования.

Например, ваш сайт имеет 3 рубрики: «Прогулки» «Музеи» «Экскурсии». И ваши посты могут относиться сразу ко всем 3 рубрикам.

Может лучше добавить общую рубрику? А эти 3 сделать подрубриками.

Добавление нескольких рубрик для одного поста никак не влияет на SEO сайта.

Это, опять же, делается лишь для удобного поиска посетителей сайта.

Если посты на вашем сайте попадают под несколько рубрик очень часто, стоит задуматься о реструктуризации. Например, переделать рубрики в метки или сделать общую рубрику.

Теперь по поводу дублирования контента.

С помощью плагина Yoast SEO вы можете установить значок no index, follow у рубрики, которую хотите показать поисковикам.

У нас есть отдельная статья «Как настроить Yoast SEO».

Вы можете сделать это с любой рубрикой на вашем сайте. Но тогда не разрешайте индексацию архива общей рубрики во избежании дублирования.

таксономия WordPress

Итак, можно ли назначать неск-ко рубрик для одной записи?

Да, можно. Если вы уверены, что так посетителям будет удобнее.

Какое максимальное количество меток можно присвоить одному посту?

Лимита на количество меток не существует.

Но смысл меток в том, чтобы соединять ваши посты по какому-либо признаку. По меткам ваши пользователи смогут находить нужную им информацию.

Но не советую добавлять 10+ меток к одному посту, иначе со временем это может привести к наличию более 10000 меток.

Метки работают как ключевые слова?

Многие считают, что это ключи, поэтому добавляют бесконечное количество меток.

Нет, метки — это не ключевые слова, по крайней мере, по умолчанию.

Но некоторые плагины, например Yoast SEO, дают возможность использовать значения меток в шаблоне мета ключевых слов. Но если у вас нет плагинов, настроенных для этого, метки не будут работать как ключи.

Что лучше для SEO: рубрики или метки?

Самый обсуждаемый в интернете вопрос — есть ли какие-то преимущества использования рубрик вместо меток и наоборот?

Нет. Они работают в паре.

Если вы прочитали этот пост, вы понимаете цели использования рубрик и меток:)

Вывод

Когда вы делаете сайт, ориентируйтесь на ваших пользователей, а не на поисковики.

В первую очередь делайте контент, интересный и удобный в навигации. Потому что поисковик оценивает сайт именно по этим параметрам и только после этого дает ему высокую оценку.

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

Предположим, ваш сайт — это книга. Так выберите красивое оглавление.

Придумайте общие рубрики, но следите, чтобы они не оказались слишком расплывчатыми.

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

Однако, если вам нужно добавить метку в качестве подрубрики других общих рубрик, лучше оставить ее в качестве метки.

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

Надеюсь, статья была для вас полезна.

Читайте также:

Пошаговое руководство «Как сделать сайт на WordPress».

Чек-лист для проверки юзабилити сайта! Проверьте, насколько пользователям удобно на вашем сайте.

Все о синдикации контента — как повысить трафик сайта?

Если у вас есть вопросы, пишите в комментариях.

azbuka-wp.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.