web-dev-qa-db-ja.com

Term_idとterm_taxonomy_idの違いは何ですか

タイトルはそれをすべて言います。現在の私のカスタム分類法では、私は用語idと分類名を使って用語を得ています。

この質問は以前にされたことがあると思いましたが、どこでもそれを見つけることができません!だから私は誰かが何か答えを持っているかどうか聞いてみると思います。

20
Daithí

Wordpressのドキュメントを見れば、 Wordpress Taxonomies が見つかるでしょう。

  • term_id は、termsテーブル内の用語のIDです。
  • term_taxonomy_id は、term + taxonomyペアの一意のIDです。
18
Juan Ramón

コーデックスは言う:

  • term_idは、期間テーブル内の期間のIDです。
  • term_taxonomy_idは、用語と分類法のペアの一意のIDです。

これは何を意味するのでしょうか?

言葉は言葉です。タグ、カテゴリ、カスタム分類などの分類に属することができます。重要なのは、同じ用語を含むいくつかの分類法があるということです。

「肥育」という用語があるとしましょう。このWordにはID番号があります。これがterm_idです。それは、この言葉がどのように使われているか、すなわち、どの分類にその用語が現れるかには依存しません。

ポストタグとしての「肥育」という言葉にも数字があります。これがterm_taxonomy_idです。これは「投稿タグ「肥育」」に対応します。

たぶんあなたはまた、 "肥育"と呼ばれるカテゴリがあります。 term_idは同じですが、「カテゴリ 'fattening'」のterm_taxonomy_idは異なります。

9
Ken.shinde

これはデザインのより深い理解の一部であるので、私はそれを全体として説明します... :)

WP 4.5.3には、まだこれらすべてのテーブルがあります(私はそれらについて説明しますwithout prefix):

  • 投稿
  • term_relationships
  • term_taxonomy
  • 条項

投稿用語の読みやすい名前を取得するためのパスは、それらすべてを通ります。

投稿
ここでの主な識別子はID - 投稿のID(任意のタイプ)

term_relationships
は次のペアを格納します。
object_id - can be posts.ID(ただしnotにする必要はあります)
term_taxonomy_id - これは _ではない_ 用語のID(カテゴリ)ではなく idのRELATIONSHIP/の間(カテゴリ)と分類法( "カテゴリタイプ")

term_taxonomy
ここでの主な識別子はterm_taxonomy_idです。^^
もう一つの重要なコラム:
term_id - 用語のID (カテゴリ)
taxonomy - 用語の分類法( "カテゴリタイプ")を格納します

これは面白いように思えるかもしれませんが、当初の目的は、用語に分類法を追加する機能を追加することでした(これはsomeケースでは意味があります)。

条項
ここでの主な識別子は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
5
jave.web