XPressME Integration Kit

フォーラム

Re: WPのギャラリーからの画像取得について

#3313
toemon
キーマスター

途中でサイズの指定が利かなくなるという事は

考えられますでしょうか。

これは、WordPressのサムネイル作成ルールと、

画像サイズ指定での画像取得方法のルールによって引き起こされる現象です。

少しややこしいですが

WordPressはイメージのアップロード時、特に指定の無い限り、thumbnail, medium, large , fullのイメージを作成します。

次にコード例wp_get_attachment_image_info()で利用しているwp_get_attachment_image_src()はイメージのURLとそのサイズを取得する場合

image_get_intermediate_size()を利用して、作成されているイメージより

幅が指定サイズと同じ かつ 高さが指定サイズより小さい

または

高さが指定サイズを同じ かつ 幅が指定サイズより小さい

という条件で該当するイメージを探します。

上の条件に一致するものがない場合、

幅が指定サイズより大きい かつ 高さが指定サイズより小さい最小のイメージ

または

高さが指定サイズより大きい かつ 幅が指定サイズより小さい最小のイメージ

という条件のもとで最寄りのイメージを探します。

そして、これらの条件のもとで検索された、イメージのURLとそのサイズを返します。

つまり、作成されているイメージの中から指定のサイズ(300,9999)で検索した結果としてフルサイズのイメージへのURLが検索され

URLが示すイメージのサイズは大きいけれどIMGタグのwidht,heightで縮小表示しているということになります。

大きいサイズの画像URLと小さいサイズの画像URLを

取得する必要がありました。

利用されているJQueryがIMGタグのwidht,heightを無視して、イメージのURLだけを取得表示しているのであれば、

必要なサイズのイメージを作成しておく必要があります。

例えば、幅500,高さ600の画像をアップロードした場合、

デフォルトのmediumサイズのイメージ(300,300)で作成されるイメージは幅250高さ300となります。

ここで、指定サイズ(300,9999)のイメージを検索した場合、幅300に該当する画像がないため、それより大きい画像(フルサイズ)のURLが返ります。

従って、指定サイズ(300,9999)のイメージとそのURLが必要ということであれば、thumbnail, medium, largeのサイズ設定を見直すか、

add_image_size()を使って作成されるイメージサイズを増やす等の検討を行う必要があります。