- 04.06.15
- 15:13
- 931
- 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.