WordPressの投稿にアイキャッチ画像がセットされていない時は、指定した画像を代わりに表示させる方法をご紹介いたします。

先日、デフォルトのアイキャッチ画像をセットするDefault Featured Imageというプラグインをご紹介しましたが、今回はプラグインを使わずに自前で実装する方法です。

アイキャッチ画像が未設定の時に指定したデフォルト画像を表示させる方法

適用しているテーマのfunctions.phpや自作プラグイン、PHPスニペットプラグインなどに以下コードを記述します。

add_filter('post_thumbnail_html', function ($html) {
  if ("" === $html) {
    $html = '<img src="' . get_theme_file_uri('/assets/img/noimage.jpg') . '" alt="">';
  }
  return $html;
});

テーマディレクトリの中の「/assets/img/noimage.jpg」が、デフォルト画像として利用されるようになります。自作プラグインのディレクトリに画像を設置したい場合は、下記のようにディレクトリ指定を変更してください。

add_filter('post_thumbnail_html', function ($html) {
  if ("" === $html) {
    $html = '<img src="' . plugin_dir_url(__FILE__) . 'assets/img/noimage.jpg' . '" alt="">';
  }
  return $html;
});

上記コードを追加することで、the_post_thumbnail()でアイキャッチ画像を出力している箇所の挙動が変わります。

アイキャッチ画像がセットされている場合はそのままアイキャッチ画像を出力、アイキャッチ画像がセットされていない場合は指定したデフォルト画像が出力されるようになります。

あとがき

Default Featured Imageプラグインを使った方が簡単ではありますが、プラグインを使用せずに自身で実装したい時はぜひ参考にしてください。

投稿者

himecasのアバター

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です