よく使うコードを関数にしておくと保守性が高まりますし、コードもスッキリします。
<?php if ( has_post_thumbnail() ): ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a> <?php else: ?> <a href="<?php the_permalink(); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/img/common/noimage_600x400.png" alt=""></a> <?php endif; ?>
これをfunctions.phpに関数にします。
/** * No Image画像を表示する関数 */ function display_thumbnail() { if ( has_post_thumbnail() ) { echo '<a href="'.get_permalink().'">'.get_the_post_thumbnail( 'thumbnail' ).'</a>'; }else { echo '<a href="'.get_permalink().'"><img src="'.get_template_directory_uri().'/images/common/noimage.png" height="180" width="180" alt=""></a>'; } }
使う時は関数名を記述
<?php display_thumbnail() ?>
ここで注意するのは、テンプレートでは『<?php the_post_thumbnail('thumbnail'); ?>』となっていたのを関数では『get_the_post_thumbnail( 'thumbnail' )』にしないといけません。
the_permalink(); → get_permalink() the_post_thumbnail('thumbnail') → get_the_post_thumbnail( 'thumbnail' )
Codexだと大抵、the*()は「~を表示する」、get_the*()は「~を取得する」と書いてあります。ループの中の現在地が「the」に対し『get』は引数でIDなどを指定することができます。