WordPressのDBに直接、ポスト(投稿)してカテゴリー、サムネイル画像と関連付ける方法

WordPress

WordPressで、MySQLのデータベースに直接、記事を投稿して、それをカテゴリーに紐づけたいと思います。

そして、さらにアイキャッチ画像、サムネイル画像と紐づけたいと思います。

スポンサーリンク
スポンサーリンク

WordPressのデータベースのテーブル一覧

WordPressのデータベースのテーブルはシンプルです。

テーブル名 保存されるデータ
wp_posts 投稿・固定ページ・メディア・カスタムメニュー・カスタム投稿・リビジョンなどの投稿関連のデータが保存される。
wp_postmeta wp_posts用のメタデータが保存される。
wp_terms カテゴリーやタグ、カスタム分類などのターム情報が保存される。
wp_term_relationships タームと投稿などを関連づけるデータが保存される。
wp_term_taxonomy タームと分類を関連づけるデータが保存される。
wp_users ユーザー情報が保存される。
wp_usermeta ユーザーのメタデータが保存される。
wp_comments コメントが保存される。
wp_commentmeta コメントのメタデータが保存される。
wp_options 様々な設定情報が保存される。主に管理画面の【設定】で入力したデータなど。
wp_links リンク関連のデータが保存される。

この中で、投稿に関係するのは、ほぼ wp_posts だけです。

WordPressで記事を投稿する際のデータベースとの関連

WordPressに記事を投稿する際のデータベース、テーブルの動きは以下の通りです。

まず、「wp_posts」テーブルにinsertします。

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

次に、カテゴリへの追加ですが、

まず、「wp_term_relationships」テーブルにinsertします。

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

ちなみに、タグもカテゴリーと同じwp_term_relationshipsを使います。

つまり、カテゴリーとタグではテーブル上は違いはありません。

タグのIDを指定すれば、それはタグとして扱われます。

次に、以下の方法でカテゴリーに属する記事数を更新します。

カテゴリーIDで、「wp_term_taxonomy」を更新します。

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

ここまでの処理を実際にやってみます。

WordPressのDBに直接、コンテンツをインサートする方法

以下のように、insertすると、以下のことが可能になります。

WordPressのDBに直接、コンテンツを入れて、かつ、それをカテゴリと紐づける。

さらにアイキャッチ画像 (Featured Image、サムネイル画像) と紐づける。

insertした後、直近のユニークIDを取得する方法ですが、

@@IDENTITYを使うと、直前の挿入したテーブルのユニークIDを取得できます。

これを使うと、直近の INSERT 後に、更新したテーブルのユニークIDを取得することができるので便利です。

ただし、@@IDENTITYは、INSERT直後のユニークIDなので、2回 INSERTすると書き換わりえます。

そのため、ここでは、カテゴリおよび、サムネイルを紐づけるために、SELECT MAX(id) FROM wp_posts を使うとよいでしょう。

WordPressのおすすめ本

↓WordPressのおすすめ本はコチラ

WordPressのおすすめ本