WordPressのアイキャッチを一括変更する方法 | プラグインとコードで全記事を差し替え

WordPressのアイキャッチを一括変更する方法 | プラグインとコードで全記事を差し替え
結論

アイキャッチは、標準の一括編集では変えられないのよ。まとめて変えたいなら、無料プラグインか、短いコードを使いなさい。どちらも元に戻す操作が無いから、先にバックアップを取ってからね。

サチエ

あら、早いお出ましね。何があったか、話してごらんなさい。

のりお

サチエさん、サイトのデザインを変えることになって、記事のアイキャッチを全部差し替えたいんです。でも、数十本もあって……。

サチエ

数十本を手作業なんて、体がいくつあっても足りないわよ。

のりお

まとめて変える方法が、あるんでしょうか。

標準の一括編集でアイキャッチは変えられない

投稿一覧の「一括編集」には、アイキャッチを変える項目が無いのよ。

公式ドキュメントの「投稿画面」では、一括編集で変えられる項目は、投稿者、コメント許可、ステータス、ピンバック許可、先頭固定の5つ。カテゴリーとタグは、追加だけできるわ。1本ずつ直す「クイック編集」にも、アイキャッチは無いの。

断っておくわね。公式に「一括で変えられない」と書いた文は、私は見つけられなかったの。項目の一覧に出てこない、というのが根拠よ。

標準の一括編集の画面。タイトル、カテゴリー、タグ、投稿者などの項目はあるが、アイキャッチ画像の項目は無い

投稿にチェックを入れて「一括操作」で「一括編集」を選び、「適用」を押すと、この画面が開くわ。カテゴリー、タグ、投稿者、コメント、トラックバック/ピンバック、ステータス、先頭固定表示が並んでいて、アイキャッチは無いのよ。

「投稿のアイキャッチ」ブロックは、別物よ。テンプレートの中で見た目を整える表示用のブロックで、画像をまとめて入れ替える道具ではないわ。

道具は2つよ。画面で操作できるプラグインと、PHPを数行書くコード。

方法1:プラグインで一括変更する

WordPress.orgに、アイキャッチを一括で設定・置き換え・削除できる無料プラグインがあるの。「Quick Featured Images」よ。公式ページによると、2026年11月13日に確認した最新版は13.7.5よ。動作条件は、公式ページによると、WordPress 5.6以上よ。

使う前に、バックアップを取る

このプラグインには、元に戻す機能が無いのよ。公式ページにも「This plugin has no Undo function!」とあるわ。WordPressのバックアップを手動で取る方法を見て、先に取りなさい。

一括設定の流れ

プラグインを有効化すると、左のメニューに「アイキャッチ画像」が増えるの。その中の「一括編集」を開くのよ。画面の中の文言は、英語のままよ(メニュー名だけ日本語になるわ)。

画面の上に進行バーが出て、流れは5段階よ。

  1. Select:やりたい操作を選ぶ。
  2. Add filter:オプションと、絞り込みの種類を選ぶ。
  3. Refine:絞り込みの中身を決めて、プレビューする。
  4. Confirm:変わる記事の一覧を見て、「適用」を押す。
  5. Perform:結果が出る。
プラグインで一括設定する5つの段階(画像を選ぶ、操作を選ぶ、絞り込む、プレビューで確認する、実行する)

手順1:操作を選んで、画像を選ぶ

1枚の画像を使う操作は3つ。「Set the selected image as new featured image」(選んだ画像を新しいアイキャッチにする)、「Replace featured images by the selected image」(置き換える)、「Remove the selected image as featured image」(外す)よ。ほかに、ランダム設定やアイキャッチをぜんぶ外す操作もあるわ。

「Choose Image」を押して、メディアライブラリから1枚選び、「次へ」よ。この画面にも「There is no undo function!」と書いてあるわ。

選ぶ画像は、メディアアップローダーで入れたものにしなさい。FTPなどで直接入れた画像だと、公式は「No matches found」と出ることがあると説明しているの。

手順2:オプションと絞り込みを選ぶ

オプションは2つ。「Overwrite featured images」はすでにあるアイキャッチを上書きする、「Consider only posts without any featured image」はアイキャッチが無い記事だけを対象にするものよ。

その下で、絞り込みの種類を選ぶの。無料版は、投稿タイプ(初期値はすべて)、カテゴリー、タグの3つ。日付での絞り込みは、Pro版よ。

ここが罠よ。「アイキャッチが無い記事だけ」にチェックを入れて、すでに全記事にアイキャッチがあると、対象は0件になるの。 この条件だと、画面には「0 matches found」と出るの。全記事を置き換えたい時は、「Overwrite featured images」にチェックを入れて、「アイキャッチが無い記事だけ」は外しなさい。無い記事だけに設定したい時は、反対に上書きをオフにするのよ。公式のFAQにも書いてあるわ。

手順3:プレビューで、変わる記事を確認する

カテゴリーなら、ドロップダウンで選んで「Preview filtering」を押すの。カテゴリー「トラブル」を選ぶと、「11 matches found」と出て、記事が「Current Featured Image(いま)」と「Future Featured Image(変更後)」の2列で並んだわ。

Quick Featured Imagesの確認画面。絞り込んだ11件が、Current(今のアイキャッチ)とFuture(変更後)の2列で並ぶ

このプレビューは、飛ばしては駄目よ。 変わる記事の数と中身を、実行の前に見られるのは、ここだけなの。

手順4:確認して、適用する

一覧の下に、確認の文が出るわ。「Should the selected image be set as featured image to all listed posts? You can not undo the operation!」。意味は「選んだ画像を、一覧のすべての記事のアイキャッチにしますか。元に戻せません」よ。

問題が無ければ「適用」、やめるなら「キャンセル」よ。適用すると「Results of the action」の画面で、記事ごとに「Changed successfully」と出るわ。投稿一覧でも、アイキャッチが変わっているの。

そのほかの注意

  • 操作できるのは、他人の投稿を編集できる権限の人よ。「設定」で使えるロールを切り替えられて、初期値は編集者なの。
  • プラグインを削除しても、設定したアイキャッチは残るわ。

方法2:コードで一括変更・一括削除する

プラグインを増やしたくない時は、WordPressの関数を使うの。set_post_thumbnail( $post, $thumbnail_id ) で設定、delete_post_thumbnail( $post ) で削除よ。公式のリファレンスでは、内部で投稿のメタ情報 _thumbnail_id を更新・削除する関数なの。

このコードで、一括設定も一括削除もできるの。元の状態に戻すのも、同じ形の処理でできるわ。

進め方

実行したらすぐDBが書き換わるから、次の順番で進めなさい。

  1. バックアップを取る。WordPressのバックアップを手動で取る方法を見るのよ。
  2. 新しいアイキャッチにする画像のメディアIDを調べる。メディアライブラリで画像を開くと、画面のアドレスに画像のIDが出るわ。
  3. 有効なテーマの functions.php のバックアップを取って、コードを足す。
  4. サイトか管理画面を1回読み込む。
  5. 投稿一覧で、アイキャッチが変わったか確認する。
  6. コードを削除する。

全記事に同じ画像を設定するコード

123 は、手順2で調べたIDにしなさい。123 のまま実行しては駄目よ。

add_action( 'init', function () {
    $new = 123; // 新しいアイキャッチのメディアID
    $ids = get_posts( array(
        'post_type'   => 'post',
        'post_status' => 'any',
        'numberposts' => -1,
        'fields'      => 'ids',
    ) );
    foreach ( $ids as $id ) {
        set_post_thumbnail( $id, $new );
    }
}, 99 );

get_posts でIDを集めて、1本ずつ設定する書き方よ。'post_status' => 'any' だと、下書きや予約投稿も入るの。公開済みだけなら 'publish' にしなさい。

コード実行の前後。実行前はバラバラだったアイキャッチが、実行後は全記事で同じになる

カテゴリーで絞る

あるカテゴリーだけなら、get_posts の条件に、スラッグを足すのよ。trouble は自分のスラッグにしなさい。こうすると、そのカテゴリーの記事だけが対象になるわ。

$ids = get_posts( array(
    'post_type'     => 'post',
    'post_status'   => 'any',
    'numberposts'   => -1,
    'fields'        => 'ids',
    'category_name' => 'trouble',
) );

一括削除するコード

全部外したい時は、set_post_thumbnail を delete_post_thumbnail に替えるだけよ。

foreach ( $ids as $id ) {
    delete_post_thumbnail( $id );
}

falseが返っても、失敗とは限らない

公式によると、set_post_thumbnail の false は「失敗」と「同じ値の再設定」の両方を指すの。同じ画像が設定済みの投稿に同じIDを設定すると false が返るけれど、失敗ではないわ。

実行したら、コードを消す

functions.php のコードは、ページを読み込むたびに動くのよ。置きっぱなしにすると、あとから個別に変えた記事も、次の読み込みで戻されるわ。結果を確認したら、足した部分を削除して、バックアップと見比べなさい。

公式に、functions.php に一時的に書く時の注意は見当たらなかったの。「実行後に消す」「バックアップを取る」は、私が必要だと考える手順よ。

似たプラグイン「Auto Featured Image」との違い

WordPress.orgの「Auto Featured Image」は、公式ページによると、2024年6月25日に閉鎖されていて、ダウンロードできないの。今回の目的にも使えないから、入れてはいけないわよ。

方法の選び方

  • 画面で操作したい、プレビューで確認したい:プラグイン
  • プラグインを増やしたくない、PHPを数行書ける:コード
サチエ

のりお、やり方は分かった?

のりお

はい。標準の一括編集では変えられないので、プラグインを使います。実行の前に、バックアップとプレビューを確認します。

サチエ

それでいいのよ。順番を守れば、何十本でも怖くないわ。

まとめ

  • アイキャッチは、標準の一括編集では変えられない(項目一覧に無い)。
  • まとめて変えるには、プラグイン(Quick Featured Images)か、コード(set_post_thumbnail / delete_post_thumbnail)を使う。
  • プラグインには、元に戻す機能が無い。先にバックアップを取り、プレビューを確認してから実行する。
  • コードは、get_posts でIDを集めて foreach で回す。実行したら、足したコードを消す。
  • set_post_thumbnail が false を返しても、同じ値の再設定なら失敗ではない。

ほかの記事

出典

この記事を書いた人

サチエ

サチエ

元銀座ママのサチエが、WordPressの困りごとを人生と夜の世界の例えで教えるサイトです。慌てる男はモテないわよ。順番よ、順番。

← 記事一覧に戻る