it-swarm-ja.com

MYSQLでWordpressのカテゴリテーブルを見つける方法は?

私はWordPressがすべての投稿データを'wp_posts'テーブルに保存することを知っています。しかし、ここでWordPressはそれに関連するカテゴリIDや参照を定義していません。

どうやって 'wp_posts'テーブルが正確なカテゴリを見つけるのか教えてください。詳しく教えてください。

14
user1218948

Codexの WordPress Taxonomy のドキュメントを参照してください。

WordPress 2.3では、以前のカテゴリ、post2cat、およびlink2catの各テーブルが、より柔軟な3つの分類テーブルに置き換えられました。

wp_terms
wp_term_relationships
wp_term_taxonomy

wp_terms - 単一の用語に関する基本情報を保持します。

term_id bigint(20) unsigned NOT NULL auto_increment,
name varchar(200) NOT NULL default '',
slug varchar(200) NOT NULL default '',
term_group bigint(10) NOT NULL default 0,
PRIMARY KEY  (term_id),
UNIQUE KEY slug (slug),
KEY name (name)
  • term_idは用語の一意のIDです。
  • 名前は単に用語の名前です。
  • slugはユニークで、名前はURLにやさしい形式になりました。
  • term_groupは、類似した用語をまとめる手段です。

wp_term_taxonomy - 分類法を定義します - タグ、カテゴリ、またはカスタム分類法のいずれか

term_taxonomy_id bigint(20) unsigned NOT NULL auto_increment,
term_id bigint(20) unsigned NOT NULL default 0,
taxonomy varchar(32) NOT NULL default '',
description longtext NOT NULL,
parent bigint(20) unsigned NOT NULL default 0,
count bigint(20) NOT NULL default 0,
PRIMARY KEY  (term_taxonomy_id),
UNIQUE KEY term_id_taxonomy (term_id,taxonomy),
KEY taxonomy (taxonomy)
  • term_idは、期間テーブル内の期間のIDです。
  • 分類法は、その用語が属する分類法を指定します。デフォルトの分類法はcategory、link_category、およびpost_tagです。
  • term_taxonomy_idは、用語と分類法のペアの一意のIDです。
  • 親フィールドは、分類法における用語間の階層関係を追跡します。
  • descriptionは、用語の分類法固有の説明を提供します。
  • countは、term +分類法のペアに関連付けられているオブジェクトの数を追跡します。たとえば、カテゴリ分類の用語を指定すると、countはその特定のカテゴリに含まれる投稿の数を追跡します。

wp_term_relationships - WordPressオブジェクト間の投稿やterm_taxonomyテーブルのterm_taxonomy_idへのリンクなど、多対多の関係が含まれます。

object_id bigint(20) unsigned NOT NULL default 0,
term_taxonomy_id bigint(20) unsigned NOT NULL default 0,
term_order int(11) NOT NULL default 0,
PRIMARY KEY  (object_id,term_taxonomy_id),
KEY term_taxonomy_id (term_taxonomy_id)
  • object_idは投稿またはリンクのIDです。
  • term_taxonomy_idは、特定の用語と分類のペアを指定するterm_taxonomyテーブルのIDです。
  • term_orderはオブジェクトに対する用語の順序付けを可能にします(チケット#5857を参照)
23
marfarma