[WordPressメモ]the_post_thumbnailで特殊なサイズのサムネイルを指定して表示するときの注意点

wp-blue-640x960

例えば、テンプレートファイルのfunctions.phpにて、

「add_theme_support( ‘post-thumbnails’ )」サムネイル(アイキャッチ)のサポートを宣言して

add_theme_support( ‘post-thumbnails’ );

「set_post_thumbnail_size()」で生成されるサムネイルのサイズを214×120ピクセルで指定しているテンプレートがあった時

set_post_thumbnail_size( 214, 120, true );

実際に、「the_post_thumbnail()」でサムネイルを表示しているところで表示されている画像を、画像のURLのみ抜き出してブラウザで表示して見てると、普通に設定>メディア設定で指定されたサイズ(120×120とか150×150)とかのサムネイルが使われていたりして、実際には214×120のサムネイル領域に、120×120ピクセルの画像が引き伸ばされて表示されていていびつな事になっていることにはじめて気がつくわけです。

アイキャッチ画像を表示したいときは、下記の様に「the_post_thumbnail()」に「post-thumbnail」というパラメータまたは、サイズを直接指定渡せばいいらしいのですが、

the_post_thumbnail(‘post-thumbnail’);

ちなみに下記の様にすると、imgタグにクラスの指定を追加できたりして面白いです。

the_post_thumbnail(‘post-thumbnail’, ‘class=hogehoge’);

 

そして、ここからが本題です。

指定のサムネイルのサイズを表示したい時以下のように「the_post_thumbnail()」に「array(120,120)」という風に、サムネイルのサイズを指定してあげるとそのサイズのサムネイルを表示することが出来ます。

the_post_thumbnail(array(120,120));

 

しかし、214×120ピクセルという特殊なサイズ指定したサムネイルを生成している時に、サムネイルを表示仕しようと思って、以下のように指定した場合、120×120ピクセルなどのサムネイルが表示されていて困ったことが有ります。214×120ピクセルのサムネイルが生成されていないのじゃないかと、ディレクトリ内を確かめたりしますが、画像はちゃんと出来ていたりします。

the_post_thumbnail(array(214,120));

ソースまでは見ていませんが、どうやらwordpressは指定したサイズに近いサイズの画像を選択するようで、下記のように高さに1プラスした値を指定したところ、思った通りのサイズのサムネイルを表示してくれました。もしかすると高さだけを見ているのか、面積で近いものを探しているのかなどと想像してみます。

the_post_thumbnail(array(214,121));

なので、下記の様に指定したい画像のサイズの高さと幅に1ずつ足したものを指定するようにしています。

the_post_thumbnail(array(215,121));

追記:2014/08/12

やっぱり、下記のようにしないとダメだった。もしかしたら214×214指定ならいけるのかもしれない。

the_post_thumbnail(array(214,121));

タグ : , , ,