説明
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

コメント