ブルーシュ

IT技術の勉強記録

ホーム > Tips > WordPress

Welcart商品画像のフィルターフック

, , , , ,

※こちらはWelcart 2.6以前の記事です。

2022年8月3日追記
Welcartはバージョン2.7にアップデートされました。
詳しくは公式ページへ=>Welcart 2.7 の変更点とカスタマイズへの影響について
下記の記事は旧バージョンのものです。ご了承ください。
 
Welcartの商品画像を表示する際にフックを利用してカスタマイズできます。
2021.11.02 サブ画像にも対応
 
公式ページによるフィルターフックの解説はusces_filter_main_img / フィルターフック
 
私がよくやるのは、
①クラス名を追加
②altに商品名を指定
③商品画像がないなら、NOIMAGE画像を表示
です。
 
商品画像がなくて、2番目のようなマークが出てると残念な気持ちになるのであらかじめ用意しておきます。

商品画像がない場合の例
NOIMAGE画像ってふしぎな名前・・・

 
NOIMAGE画像はSVGで作るとどんな場所でもきれいに表示されるよ。
 
では、下記コードをテンプレートフォルダのfunctions.phpに追加します。


/*商品画像作成フィルター*/
add_filter( 'usces_filter_main_img', 'my_filter_main_img', 10, 5 );
//サブ画像にも対応させる場合
add_filter( 'usces_filter_sub_img', 'my_filter_main_img', 10, 5 );
function my_filter_main_img( $html, $post_id, $pictid, $width, $height ) {

	$attr = array(
		//クラス名を設定できるよ
		"class"	=> "wel-img",

		//altに商品名を付与
		"alt"		=> get_post_meta( $post_id, '_itemName', true ),

		//遅延読み込み
		"loading"=> "lazy"
	);

	//画像サイズも自由に変更できるよ
	//上のattrにもwidthとheightを設定できる
	$img = wp_get_attachment_image($pictid, "medium", 0, $attr);

	//画像あればここでreturn
	if($img){
		return $img;
	}

	//画像なければNOIMAGEをreturn
	return "<img src='".get_template_directory_uri() . "/img/noimage.svg' alt='no image' loading='lazy' class='wel-img'>";

}

テンプレートフォルダの画像フォルダにnoimage.svgをアップロードしておいてください。

Welcart商品画像のフィルターフック #WordPress #ウェブデザイン #ウェブ制作 #WEBデザイン #WEB制作 #プラグイン #画像 #welcart #商品画像 #svg #フィルターフック

作者の似顔絵

プログラミング歴19年🌈調べたことをブログにまとめていきます。
記事の感想・質問・間違い指摘などはツイッター ( @blooshcompany ) へお願いします。

秋田のウェブ活用をサポート

ホームページを自作してコスト削減!秋田の事業者は無料で利用できます。
ネットショップ・WordPress・SEO対策などさまざまなお悩みをサポートします。

その他、フロントエンド案件のご依頼はインフォメーション

秋田市 レンタル着物 笹パンダ堂のバナーリンク