has_post_thumbnail() の使い方|説明・引数・注意点

説明

has_post_thumbnail() は、投稿にアイキャッチ画像が設定されているかを判定する関数です。

基本構文

has_post_thumbnail( int|WP_Post $post = null ): bool

引数

  • $post:投稿IDまたはオブジェクト

戻り値

設定されていれば true。

使い方(サンプル)

if ( has_post_thumbnail() ) {
	the_post_thumbnail();
} else {
	echo '<img src="noimage.png" alt="">';
}

注意点

  • 画像ファイルが削除されていても、設定が残っていれば true になることがあります。

実務での使いどころ

  • アイキャッチ画像がある場合だけ、画像の枠を出すとき。
  • 未設定のときに、代替画像へ切り替えるとき。

よくあるミスと対処

  • the_post_thumbnail() を、判定なしで呼んで、未設定の投稿で空の余白ができる。
  • ループの外で、投稿を指定せずに呼んでいる。

NG例

echo '<div class="thumb">';
the_post_thumbnail();
echo '</div>'; // 未設定の投稿でも、空の枠が出る

OK例

if ( has_post_thumbnail() ) {
	echo '<div class="thumb">';
	the_post_thumbnail();
	echo '</div>';
}

使い分け早見表

やりたいこと 使うもの
設定されているか判定 has_post_thumbnail()
画像を出力 the_post_thumbnail()
画像のURLを取得 get_the_post_thumbnail_url()

関連項目

the_post_thumbnail()、get_post_thumbnail_id()

公式リファレンス:has_post_thumbnail() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました