[WordPress] 記事にアイキャッチ画像を張る前と張った後のデータの変化




トップページへ

※この記事を参考にされた場合のいかなるトラブルに対し、当方は責任を負いません。読者様の責任でお願いします。

※アイキャッチ画像とはサムネイル画像とも言います。

※この記事では「記事本文」と「画像」とのリンク部分のみを着目したので、それ以外の項目(post_modifiedなど)は一切考慮していません。そのためMySQLなどでテーブルを更新する場合は、他の項目の変更の有無もSQL実行前にご確認下さい

 

 

phpMyAdminで操作を誤るトラブルを起こした結果、アイキャッチ画像が消えてしまうというトラブルになりました。

そこで「アイキャッチ画像はどのように保管されているのか?」を調べてみました。

なお編集時のもので、WordPressのバージョンによっては記事とは異なる可能性があります。

 

■この記事での調査環境

WordPress 5.8.1

 

■調べた結果の概要

記事:postsテーブル

画像:postsテーブル

関連付け:postmetaテーブル

※調べた結果、当方ではアイキャッチに関連するのはこの2つのテーブルのみと判断しております。ですが、実際はもっと他のテーブルも関連している可能性もあります。あらかじめご了承下さい。

 

 

■画像を張る前

画像を張っていないので、そのpostsテーブルにもpostmetaテーブルにも画像に関するデータはありません。

(画像をアップロードした時点で、postsテーブルに画像データが追加されます)

 

■投稿の編集画面でアイキャッチ画像を指定する

ワードプレスの投稿の編集画面でアイキャッチ画像を指定する

 

■画像を張った後

順序は不明ですが

1 postsテーブルの画像データが更新されます。

2 関連付けのpostmetaテーブルに「記事のID」と「画像のID」そして「’_thumbnail_id’」の値が入ったデータが追加されます。

 

■ワードプレスがアイキャッチ画像を表示するまでの流れ

1 記事を表示

2 記事のIDと「’_thumbnail_id’」で postmetaテーブルを読み、画像のIDを把握

3 画像のIDで postsテーブルを読み、「guid」に入っている画像のファイルパスから画像を表示する

 

■この記事の内容を実際の postsテーブル、postmetaテーブルを使って解説

※タッチ(クリック)で拡大します

アイキャッチ画像が無い時の2つのテーブル

ワードプレスでアイキャッチ画像が無い時のテーブル posts, postmeta

アイキャッチ画像を追加した時の2つのテーブル

ワードプレスでアイキャッチ画像を追加した時のテーブル posts, postmeta

 

■この記事の活用例

・記事テーブル(posts)内のアイキャッチ画像の記事データが知りたい時

・アイキャッチ画像と記事がリンクしていない時の原因究明

・画像のファイルパスから逆引きして、画像IDや記事IDを取得

など

 

参考になるサイト様

WordPress のアイキャッチ設定状況を確認できる一覧を SQL で取得する方法

https://webllica.com/select-eyecatch-list-from-mysql/

【詳解】アイキャッチ画像を反映するためにWordPressのテーブルを知ろう。

https://qiita.com/Yuttti/items/d2c2403ea3b5cdd2da4f

WordPressでアイキャッチ画像(Post Thumbnail)がない投稿のみを取得する方法

http://tech.aainc.co.jp/archives/6566