WordPressのテーマをカスタマイズする際に、アイキャッチ画像が設定されていない場合にデフォルトの画像を表示する方法をご紹介します。これにより、投稿ごとにアイキャッチ画像を設定する手間を省き、サイトの外観を統一感あるものにすることができます。
functions.phpファイルを編集
まず、テーマのfunctions.phpファイルを編集します。以下のコードを追加してください。
function default_featured_image() {
// デフォルトのアイキャッチ画像のURLを指定
$default_image_url = get_template_directory_uri() . '/images/default-featured-image.jpg'; // 画像のURLを適切に変更する
// 投稿ページでアイキャッチ画像が設定されていない場合にデフォルト画像を表示
if (!has_post_thumbnail()) {
echo '<img src="' . esc_url($default_image_url) . '" alt="Default Featured Image">';
}
}
add_action('wp', 'default_featured_image');
上記の例では、default-featured-image.jpgというデフォルトの画像ファイルをテーマの/images/ディレクトリに保存しています。実際のファイルパスや画像名は、ご利用のテーマに合わせて変更してください。
テンプレートファイルを編集
次に、デフォルトのアイキャッチ画像を表示させたいテンプレートファイルを編集します。通常、これはsingle.phpやcontent.phpなどの投稿の表示を担当するファイルです。以下はその例です。
<?php
if (have_posts()) :
while (have_posts()) : the_post();
// デフォルトのアイキャッチ画像を表示する関数を呼び出す
default_featured_image();
// 投稿のコンテンツなどを表示する
the_content();
endwhile;
else :
// 投稿が存在しない場合の表示
echo '投稿がありません。';
endif;
?>
これにより、投稿ページでアイキャッチ画像が設定されていない場合にデフォルトの画像が表示されるようになります。
よくある質問(FAQ)
Q. アイキャッチ画像が未設定の場合にデフォルト画像を表示するには?
A. has_post_thumbnail()でアイキャッチの有無を確認し、なければデフォルト画像のパスを指定して表示します。条件分岐でthe_post_thumbnail()とimg タグを切り替えるのが一般的な方法です。
Q. デフォルト画像をWordPressのメディアライブラリから選べるようにするには?
A. add_option()でデフォルト画像URLを保存するオプションを作り、カスタマイザーやメディアアップローダーで設定できるようにします。テーマカスタマイズ画面から選択可能にする方法が使いやすいです。
Q. post_thumbnailフィルターでデフォルト画像を一括設定できますか?
A. post_thumbnail_htmlフィルターフックを使い、アイキャッチが未設定の場合にデフォルト画像のHTMLを返すようにできます。全記事に適用されるため、functions.phpに1か所書くだけで対応できます。
まとめ
以上で、WordPressでアイキャッチ画像が設定されていない場合にデフォルトの画像を表示する方法が完了しました。サイトのテーマによっては、テンプレートファイルの構造が異なる場合があるため、適宜調整してください。