「アイキャッチ画像を設定するのを忘れていた」
「1 個ずつ記事を編集するの面倒だな」
「無駄にプラグイン入れたくないな」
こんな時はデータベースを操作して楽々解決したいですよね。
今回は、アイキャッチ画像を設定していない記事に、特定のメディア画像を設定する方法を紹介します。
アイキャッチ画像のデータ
記事のアイキャッチ画像は以下のテーブルに登録されています。
(テーマや設定によってプレフィックスは変わります)
wp_postmeta
このテーブルには以下のカラムが用意されていて、ここにメディア画像の設定をしていきます。
・media_id
・post_id
・meta_key
・meta_value
アイキャッチが設定されていない記事を探す
アイキャッチが設定されている記事に変更は加えたくないので、アイキャッチが未設定の記事だけを抽出しましょう。
1 2 3 4 5 6 7 8 9 10 11 | SELECT p.ID FROM wp_posts p LEFT JOIN (SELECT * FROM wp_postmeta WHERE meta_key = '_thumbnail_id') pm ON p.ID = pm.post_id WHERE p.post_type = 'post' AND pm.meta_key IS NULL |
ざっくりとした SQL ですが、まずはここに該当したデータを確認してみましょう。
余分なデータがあれば、wp_posts テーブルの条件を絞っていくといいですね。
(post_status など)
アイキャッチのデータを作成する
上記のデータとメディア画像の情報から、アイキャッチのデータを作成していきましょう。
post_id:記事の post_id
media_key:_thumbnail_id
media_value:画像データの post_id
例えば、該当記事の post_id が 1 から 5、画像の post_id が 15 だった場合、以下の SQL を作成します。
1 2 3 4 5 6 | INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES (1, '_thumbnail_id', '15'), (2, '_thumbnail_id', '15'), (3, '_thumbnail_id', '15'), (4, '_thumbnail_id', '15'), (5, '_thumbnail_id', '15'); |
これでアイキャッチ未設定の記事に対して、目的の画像を設定することができました。
WordPress のデータベース設計はシンプルなので、データの管理方法に興味のある方は、データが少ない時にじっくり見てみるといいと思います。