未解決◆【WordPress】サムネイル画像とアイキャッチ画像は違う?@o@

投稿記事を表示するループ内で、サムネイル画像を持つかどうかの条件分岐がtrueの場合でも、サムネイルが表示されない件。
<?php if ( have_posts() ) : while () : the_post(); ?>
・・・のループ内で
<?php if ( has_post_thumbnail()): ?>
・・・サムネイルを持つかを判定し、
<?php the_post_thumbnail(); ?>
・・・tureならサムネイル画像を表示、
<img src=”画像なし用画像.jpg” alt=”no_image”>
・・・falseなら画像なし用画像を表示する
というスクリプトで、trueの処理が行われているにもかかわらず、サムネイル画像が表示されない。
投稿記事にアイキャッチ画像を追加したら表示されるようになったが・・・・なんで?

 

□詳細

ある特定カテゴリーの投稿記事の画像付きヘッドラインを表示したくて、投稿記事に画像があればそのサムネイル画像を、画像がなければ別に用意したNoImage画像を表示するようにしたかった。

そのスクリプトが

(a)
<?php query_posts( array(
‘category_name’ => ’<カテゴリーのスラッグ>’,
‘orderby’ => ’date’,
‘order’ => ’desc’
)); ?>

(b)
<?php if ( have_posts() ): ?>
<h3>ヘッドライン</h3>

(c)
<?php $num = 0; ?>
<?php while ( have_posts() && $num < 5 ) : the_post(); ?>
<div>
<a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>”>
<?php if ( has_post_thumbnail()): ?> ・・・・・・・・・・(d)
<?php the_post_thumbnail(); ?> ・・・・・・・・・・(e)
<?php else: ?>
<img src=”<画像なし画像>” title=”no_image”> ・・・・(f)
<?php endif; ?>
</a>
</div>
<div>
<div><?php the_title(); ?></div>
<div><?php the_excerpt(); ?></div>
</div>
<?php $num += 1; ?>
<?php endwhile; ?>
<?php endif; ?>

こんな感じ。

(a) 特定カテゴリーの記事を最新投稿順に取り出し、
(b)記事の有無を判定してから、
(c)取り出す記事を最大5件に設定して(ループ回数を5回に限定して)
(d)has_post_thumbnail() でサムネイルの有無を判定
(e)trueなら、the_post_thumbnail() でサムネイルを表示し、
(f)falseなら、別に用意したNoImage画像を表示する

という内容なのだが、サムネイル画像もNoImage画像もどちらも表示されないという状況。

現状で、すべての記事に画像がついているので、(d)による判定はすべてtrueになる。
これはtrueの処理(e)を<?php echo “It’s TRUE !!!!!!”; ?>のように別処理にするとそれが実行されることで確認。

・・・ということは、the_post_thumbnail() がなにも出力していないってこと!?

いろいろと考えているうちに、サムネイル画像のほかにアイキャッチ画像ってのもあるよなぁ・・・って思い始め、その違いがなんなのかわからないけど、とりあえず投稿すべてにアイキャッチ画像を追加してみようってわけでやってみたら・・・

お見事、サムネイル画像が表示されて、思っていたようなヘッドラインが出力されました。

 

でもこれって、サムネイル画像とはアイキャッチ画像のこと ってことなの?

いやいや、アイキャッチ画像を追加する前でも、
has_post_thumbnail()
はtrueだったわけだし、だとすればアイキャッチ画像を追加しなくても、サムネイル画像を表示してもよさそうなもんだけどなぁ。。。。

と、もやもやが残ってまだ未解決扱いです。

時間を見つけていろいろ調べてみるつもりですが、このあたりのことご存知の方がいらっしゃいましたら、ご教授いただけると助かります。^-^;

 

 

Leave a comment

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


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>