Відповіді:
Якщо ви заглянете в документацію Wordpress, ви знайдете таксономії Wordpress
term_id
з них буде відбуватися лише один раз у term_taxonomy
таблиці (до того, як стовпець не був унікальним і терміни можна було поділити між таксономіями). Це може продовжуватись розвиватися в майбутньому на основі дорожньої карти таксономії . Однією з частин цього є поєднання термінів та термінів таблиць таксономії .
Кодекс говорить:
Що це означає?
Термін - це слово. Він може належати до систематики, наприклад тегів, категорій або власної систематики. Річ у тім: може бути кілька таксономій, що містять один і той же термін.
Скажімо, у вас є термін під назвою "відгодівля". Це слово має ідентифікаційний номер. Це термін_id. Це не залежить від того, як це слово використовується, тобто в яких таксономіях з’являється цей термін.
Тепер слово "відгодівля" як тег пошти також має число. Це термін_таксономія_id. Він відповідає "поштовому тегу" відгодівля "".
Можливо, у вас також є категорія, яка називається "відгодівля". Хоча термін_id однаковий, термін_taxonomy_id для "категорії" відгодівля "відрізняється.
Оскільки це частина більшого розуміння дизайну, я опишу його як ціле ... :)
У WP 4.5.3 ще є всі ці таблиці (я буду говорити про них без префікса):
Шлях до отримання читаних імен пост-термінів проходить через них усі.
публікації,
головний ідентифікатор тут ID
- ідентифікатор допису (будь-якого типу)
term_relationships
зберігає пари:
object_id
- може бути posts.ID
(але не може) повинно бути)
term_taxonomy_id
- це НЕ ідентифікатор терміна (категорії), а ідентифікація ВІДНОСНЕННЯ між терміном (категорією) та систематикою ("категорія типу")
Термін_таксономія,
головний ідентифікатор тутterm_taxonomy_id
описаний вище ^^
інших важливих стовпців:
term_id
- ідентифікатор терміна (категорії)
taxonomy
- зберігає таксономію терміна ("тип категорії")
Це може здатися смішним, але початковий намір полягав у тому, щоб додати можливість термінам мати більше таксономій (що в деяких випадках може мати сенс).
умови
головним ідентифікатором тут є term_id
- ідентифікатор категорії, серед яких
важливі стовпці:
name
- читабельна назва категорії, напр., "Музичні жанри"
slug
- слуп терміна, який можна використовувати, наприклад, в URL
Тож жорстока демонстрація SQL для
отримання всіх опублікованих публікацій та всіх їх категорій із іменами категорій
може виглядати так (додайте префікси до таблиць під час тестування на власному WP БД):
SELECT * FROM
posts #gets posts
LEFT JOIN
term_relationships #gets posts relationships to term_taxonomies
ON(posts.ID=term_relationships.object_id)
LEFT JOIN
term_taxonomy #gets term_ids
ON(term_relationships.term_taxonomy_id=term_taxonomy.term_taxonomy_id)
LEFT JOIN
terms #finally, gets terms' names
ON(term_taxonomy.term_id=terms.term_id)
WHERE (
(posts.post_status='publish')
#optionally you can filter by a certain post_type:
#AND
#(posts.post_type='some_post_type')
)
ORDER BY posts.ID ASC
Термін не є категорією чи тегом самостійно. Він повинен бути заданий контекстом через таблицю терміна_таксономія.
Таблиця term_taxonomy розміщує термін в межах таксономії. Це те, що робить термін категорією , тегом або частиною а власної систематики (або в поєднанні таксономій).
term_id
ідентифікатор терміна в таблиці термінів.
term_taxonomy_id
є унікальним ідентифікатором для пари терміна + таксономічна пара.
Це term_id
завжди унікальний, як і term_taxonomy_id
. Обидва мають Auto Increment
структуру таблиці.
У таблиці wp_term_taxonomy
переконується, наприклад , що категорія створюється, тому WordPress можуть взаємодіяти з ним , наприклад , WooCommerce використання: product_tag
, product_type
, product_cat
, всі вони є так звані призначені для користувача таксономії. Ця таблиця також пов'язує структуру батьків / дітей. З його стовпцем parent
.
Підсумкова таблиця, термін_взаємозв'язок, стосується об'єктів, таких як повідомлення або посилання на термін_таксономія_іда з таблиці терміна_таксономії.
Якщо ми знову підберемо Woocommerce, ця таблиця посилає тип публікації products
на їхню систематику product_cat
, яка містить найменування, наприклад, Комп'ютери, які, звичайно, витягуються з таблиці wp_terms
. Ця таблиця містить term_id
, name
, slug
і term_group
. (term_group я особисто ніколи не використовував)
Сподіваємось, вищесказане робить дещо зрозумілішими відмінності та те, як Wordpress використовує ці таблиці.