トピック投稿者
t t
(@tsugubai)
読み返すとまとまりがない文章になってしまっていて、わかりにくいかと思ったので再投稿します。
つまり、表示しているページやテンプレートごとに、表示する画像の最大サイズを指定する方法を知りたいです。。
よろしくお願いしますm(__)m
CSSでも良いということなので、jQueryなどJavascriptを使う方法はいかかでしょうか?
テンプレートごとの切り替えはWordpress標準のbodyのclassを利用できそうです。
質問内容を誤解してるかもしれませんが、コードのイメージを書いてみました。
動作確認してないので眺める程度でご勘弁。
jQuery(function($){
function fix_img_size(body_class, max_width){
//body_classや本文ブロックのClassなどでimgを絞り込み
$('body.' + body_class + ' .content-class img').each(
function(){
if( $(this).attr('width') != undefined &&
$(this).attr('height') != undefined &&
$(this).attr('width') > max_width){
//縦横サイズ取得&計算
var ori_width = $(this).attr('width');
var ori_height = $(this).attr('height');
var ratio = max_width / ori_width;
var resized_height = Math.ceil(ori_height * ratio);
//属性設定
$(this).attr({'width': max_width, 'heihgt': resized_height});
}
}
);
}
fix_img_size('archive', 300);
fix_img_size('home', 400);
fix_img_size('single', 600);
});
ただ縮小する全てのimgタグにwidth,height属性がしっかり付いていればいいですが、
そうでないとそれぞれの画像の読み込み完了後にサイズを取得し、縮小する必要があるなど
若干面倒くさい所がありそうです。
トピック投稿者
t t
(@tsugubai)
返信ありがとうございます。
なるほど、縦を自分で計算してしまうんですね!!
教えていただいた方法でトライしてみます。
ありがとうございます。