回答:
Wordpressのドキュメントを見ると、Wordpress Taxonomiesが見つかります。
term_id
内で1回だけ出現しterm_taxonomy
ます(列が一意ではなく、用語が分類法間で共有される前)。これは、分類法のロードマップに基づいて、今後も進化し続ける可能性があります。その一部は、用語と用語分類テーブルを結合することです。
コーデックスは言う:
これは何を意味するのでしょうか?
用語は単語です。タグ、カテゴリ、カスタム分類などの分類に属することができます。問題は、同じ用語を含む複数の分類法が存在する可能性があることです。
「fattening」という用語があるとします。この単語にはID番号があります。これはterm_idです。この単語がどのように使用されているか、つまり、どの分類法でその用語が表示されるかには依存しません。
投稿タグとしての「fattening」という言葉にも数字が付いています。これはterm_taxonomy_idです。「投稿タグ 'fattening'」に対応します。
「ファッテン」と呼ばれるカテゴリもあるかもしれません。term_idは同じですが、「カテゴリ 'fattening'」のterm_taxonomy_idは異なります。
これは設計のより大きな理解の一部であるため、全体として説明します... :)
WP 4.5.3には、これらすべてのテーブルがまだあります(プレフィックスなしで説明します)。
投稿用語の読み取り可能な名前を取得するためのパスは、それらすべてを通過します。
主要な識別子をここに投稿しますID
- 投稿のID(任意のタイプ)
term_relationships
の店舗のペアを:
object_id
- できることposts.ID
(がないではないことがあります)
term_taxonomy_id
-これは、NOT用語(カテゴリ)のIDが、のID 関係用語(カテゴリ)と分類の間(「カテゴリタイプ」)
term_taxonomy
ここでの主な識別子は上にterm_taxonomy_id
記述されています^^
もう1つの重要な列:
term_id
- 用語のID(カテゴリ)
taxonomy
-用語の分類法( "カテゴリタイプ")を格納します
この1は、面白いように見えるかもしれませんが、初期の用語は(ここでより多くの分類法を持っているために機能を追加することでした予定のいくつかの例の意味を作ることができます)。
ここでの主な識別子は次のとおりです。- term_id
カテゴリのID
ここにあるもう1つの重要な列は次のとおりです
name
。-読み取り可能なカテゴリ名(例:「音楽ジャンル」)
slug
-たとえばURLで使用可能な用語のスラッグ
したがって、すべての公開された投稿とカテゴリ名を持つすべてのカテゴリを取得するための SQLを示す残忍なデモ
は次のようになります(独自のWP DBでテストするときにテーブルにプレフィックスを追加します):
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_taxonomyテーブルは、分類内に用語を配置します。これは、用語をカテゴリ、タグ、またはカスタム分類の一部(または分類の組み合わせ)にするものです。
term_id
用語表内の用語のIDです。
term_taxonomy_id
term + taxonomyペアの一意のIDです。
term_id
同じように、常にユニークですterm_taxonomy_id
。両方ともAuto Increment
テーブル構造にあります。
テーブルには、wp_term_taxonomy
ワードプレスが例えばWoocommerceの使用を妨害することができますので、必ずカテゴリが作成されていることを例になり:product_tag
、product_type
、product_cat
、それらのすべては、いわゆるカスタム分類法です。このテーブルは、親/子の構造もバインドします。それはコラムparent
です。
最終テーブルterm_relationshipsは、投稿やリンクなどのオブジェクトをterm_taxonomyテーブルのterm_taxonomy_idに関連付けます。
Woocommerceを例として再度選択すると、このテーブルは投稿タイプproducts
を分類にリンクproduct_cat
しますwp_terms
。この表には含まれterm_id
、name
、slug
とterm_group
。(term_group私は個人的に使用したことはありません)
うまくいけば、上記の違いにより、Wordpressがこれらのテーブルをどのように使用するかについて、少し明確になります。