wordpressのDBに直接接続してコンテンツ更新する方法


wordpressの管理画面を使わず、プログラム等でコンテンツを更新したい、もしくは別システムからデータを投稿したい場合に、どのテーブルにどのデータを入れるかを記載。

記事を投稿したい

まず「wp_posts」テーブルにinsert

カラム名
post_author 作者
post_date 投稿時刻(現在時刻)
post_date_gmt 投稿時刻
post_content 本文
post_title タイトル
post_name タイトル
post_modified 投稿時刻(現在時刻)
post_modified_gmt 投稿時刻(現在時刻)のUTC時間
guid 空白

insertすると、idが採番されるので、それ使って、
「wp_posts」テーブルのguidをアップデート

カラム名
guid http://ドメイン名/archives/採番されたid

タグをつけたい

まず「wp_terms」テーブルにinsert

カラム名
name タグ名
slug タグ名をUrl Encodeしたもの
term_group 0

insertすると、term_idが採番されるので、それ使って、
次に「wp_term_taxonomy」テーブルにinsert

カラム名
term_id wp_termsのterm_id
taxonomy 「post_tag」
count 1

さらに「wp_term_relationships」テーブルにinsert

カラム名
object_id wp_postsのid
term_taxonomy_id wp_term_taxonomyのterm_taxonomy_id
term_order 0

カテゴリーをつけたい

カテゴリーの作成自体は未調査。管理画面で作成済みとする。
まず「wp_term_relationships」テーブルにinsert

カラム名
object_id wp_postsのid
term_taxonomy_id カテゴリーID
term_order 0

次にカテゴリーに属する記事数を更新
カテゴリーIDで、「wp_term_taxonomy」を更新

カラム名
count カテゴリーに属する件数

件数は
SELECT count(*) FROM wp_term_relationships WHERE term_taxonomy_id = [term_taxonomy_id]
で算出

管理画面からデータを入れて、登録されたデータを参考にしているので、
細かいところで誤りがあるかもしれないが、上記の方法で特に問題ない感じ。