取得画像サイズの条件分岐がしたいです
6件の返信を表示中 - 1 - 6件目 (全6件中)
-
こちらの関数で取得できるのではないかと思います。
dona0513さん
こんな感じでしょうか。
考え方的には、まず、アップしたオリジナル画像の幅を取得します。
オリジナル画像の幅を基準に条件分岐を行い、画像出力するといった関数です。<?php $attachment_id = '';//reset $attachment_id = get_post_thumbnail_id();//サムネイルID取得 if($attachment_id)://アイキャッチ画像があれば //reset $image_size = ''; $thumbnail_src = array(); $thumbnail_org_width = ''; $thumbnail_src_org = array(); $thumbnail_url = ''; $thumbnail_width = ''; $thumbnail_height = ''; //画像取得 $image__size_org = 'full';//とりあえず最大サイズを取得 $thumbnail_src_org = wp_get_attachment_image_src( $attachment_id,$image_size_org ); ///$thumbnail_url = esc_url($thumbnail_src[0],$protocols); $thumbnail_org_width = intval($thumbnail_src_org[1]); //$thumbnail_height = intval($thumbnail_src[2]); if($thumbnail_org_width > 999) ://幅が1000px以上の時 $image_size = 'hoge';//とりあえず最大サイズを取得 $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size ); elseif($thumbnail_org_width > 799)://幅が800px以上の時 $image_size = 'hoge1';//とりあえず最大サイズを取得 $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size ); else://幅が800px以下の時 $image_size = 'hoge2';//とりあえず最大サイズを取得 $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size ); endif; if($thumbnail_src): $thumbnail_url = esc_url($thumbnail_src[0],$protocols); $thumbnail_width = intval($thumbnail_src[1]); $thumbnail_height = intval($thumbnail_src[2]); echo '<img class="" src="'.$thumbnail_url.'" width="'.$thumbnail_width.'" height="'.$thumbnail_height.'" />'.PHP_EOL;//画像を表示 endif; endif;//ENDアイキャッチ画像があれば ?>
-
この返信は7年、 6ヶ月前に
photographer hiro.が編集しました。理由: コード修正
-
この返信は7年、 6ヶ月前に
photographer hiro.が編集しました。理由: 説明追加
ご返答ありがとうございます。
わざわざコードまで大変ありがとうございます。
適応してみました所、幅が1000px以上の時はうまく表示されるのですが
1000px以上ならhoge>原寸サイズ
の2つしか表示されません。
原寸サイズは表示させたくないのですが、何か方法はありますでしょうか?dona0513さん
これでどうでしょう?
<?php $attachment_id = '';//reset $attachment_id = get_post_thumbnail_id();//サムネイルID取得 if($attachment_id)://アイキャッチ画像があれば //reset $image_size = ''; $thumbnail_src = array(); $thumbnail_org_width = ''; $thumbnail_src_org = array(); $thumbnail_url = ''; $thumbnail_width = ''; $thumbnail_height = ''; //画像取得 $image__size_org = 'full';//とりあえず最大サイズを取得 $thumbnail_src_org = wp_get_attachment_image_src( $attachment_id,$image_size_org ); ///$thumbnail_url = esc_url($thumbnail_src[0],$protocols); $thumbnail_org_width = intval($thumbnail_src_org[1]); //$thumbnail_height = intval($thumbnail_src[2]); if($thumbnail_org_width > 999) ://幅が1000px以上の時 $image_size = 'hoge';//とりあえず最大サイズを取得 $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size ); elseif( ($thumbnail_org_width < 1000) && ($thumbnail_org_width > 799) )://999~800の時 $image_size = 'hoge1';//とりあえず最大サイズを取得 $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size ); elseif( $thumbnail_org_width < 800 )://幅が800px未満の時 $image_size = 'hoge2';//とりあえず最大サイズを取得 $thumbnail_src = wp_get_attachment_image_src( $attachment_id,$image_size ); endif; if($thumbnail_src): $thumbnail_url = esc_url($thumbnail_src[0],$protocols); $thumbnail_width = intval($thumbnail_src[1]); $thumbnail_height = intval($thumbnail_src[2]); echo '<img class="" src="'.$thumbnail_url.'" width="'.$thumbnail_width.'" height="'.$thumbnail_height.'" />'.PHP_EOL;//画像を表示 endif; endif;//ENDアイキャッチ画像があれば ?>
もしかしたら、switch case関数の方がいいかもです。
http://php.net/manual/ja/control-structures.switch.php -
この返信は7年、 6ヶ月前に
6件の返信を表示中 - 1 - 6件目 (全6件中)
- トピック「取得画像サイズの条件分岐がしたいです」には新たに返信することはできません。