- 04.06.15
- 15:13
- 1889
- 0
Большинство параметров термов хранится в БД — они всегда присутствуют в объекте терма. Некоторые параметры добавляются функциями и в БД отсутствуют (на момент WordPress 4.2.2 таких параметров два — filter и object_id).
Поля объекта терма имеют следующее значение:
term_id— идентификатор терма;term_taxonomy_id— идентификатор отношения «терм-таксономия»;Применяется, напр., при привязке термов к постам.
name— имя терма, должно быть уникальным в рамках того уровня иерархии, на котором расположен терм;slug— ярлык терма, уникален в рамках таксономии;description— описание терма;term_group— группа термов-псевдонимов;Обычно термы в группах не состоят и содержат в данном поле 0. Состоящие в группе термы считаются псевдонимами друг друга и обозначают один и тот же смысл. Реализация этой концепции полностью лежит на плагинах: кроме объединения в группы и сортировки по ним никаких работ с псевдонимами WordPress не проводит.
За добавление терма в группу отвечает параметр
'alias_of'у функцииwp_insert_termи параметры'alias_of'и'term_group'у функцииwp_update_term(см. кодекс).taxonomy— таксономия, к которой относится терм;parent— идентификатор родительского терма;Используется для иерархичных таксономий. В неиерархичных таксономиях и у корневых термов поле
parentсодержит 0.count— количество постов, связанных с данным термом;filter— тип обработки (санации) полей терма;Поле добавляется функцией
sanitize_term, в таблицах БД отсутствует. Значения может иметь следующие:raw— строковые поля не санируются, целочисленные преобразуются в неотрицательное целое;edit— санация для редактирования;db— для использования в запросах к БД;rss— для применения в RSS;display— для отображения;attribute— для использования полей в качестве атрибутов html-тегов;js— для использования полей в качестве атрибутов со встраиваемымjs-скриптом (напр.onclick).
Выполнение санации функциями запроса термов:
get_term,get_term_by— санируют терм, тип санации задаётся в последнем аргументе, значение по умолчанию —'raw';get_term_to_edit— возвращает терм, санированный для редактирования — тип'edit';wp_get_object_termsи использующие еёget_the_terms,wp_get_post_terms— выполняют санацию типа'raw';get_termsтермы не санирует — возвращённые ей объекты термов не содержат поляfilter, при необходимости санация проводится вручную.
object_id— идентификатор поста, к которому привязан терм;Поле добавляется функцией
wp_get_object_termsпри вызове с аргументом'fields' => 'all_with_object_id', в БД отсутствует.
Полезные ссылки
- создание и изменение термов:
wp_insert_term,wp_update_term; - получение объектов термов:
- прикреплённых к посту:
wp_get_object_terms(аргумент'feield'должен иметь значение'all'или'all_with_object_id'),wp_get_post_terms,get_the_terms; - отдельных:
get_term,get_term_by; - выборка термов таксономии:
get_terms;
- прикреплённых к посту:
- санация поля терма и целого терма:
sanitize_term_field,sanitize_term; - расположение термов в БД: Таксономии WordPress со стороны БД.
Замечание: на момент последней редакции этой заметки текущей версией WordPress была 4.2.2.