[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つのテーブル
アイキャッチ画像を追加した時の2つのテーブル
■この記事の活用例
・記事テーブル(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