[解決済み] 商品詳細ページでのimg-altを利用したい
-
投稿者投稿
-
2011年1月14日 8:27 AM #50200a2c_gore参加者
はじめまして。welcartプラグインを使ってショッピングサイトを製作中の者です。ちなみにwordpress初心者です。
質問なのですが、商品詳細ページに表示される商品画像(商品マスターより情報を登録し、メディアライブラリより自動でピックアップされる)のimg-altを各画像ごとのオリジナルの物にする方法をお教えください。
プラグインのwp-Slimbox2などを使って、商品画像をポップアップと同時に各画像ごとのimg-altの情報を表示させたいと考えております。
標準状態ですと、一つの商品に複数の画像を登録し、かつそれぞれに個別のimg-altをつけても、一律で商品名になって表示されてしまいます。
single_item.phpの167行目を変更する必要がありそうかと思いますが、なにぶん初心者のためわかりません。
お忙しいとは思いますが、ご教授ください。
よろしくお願いします。
2011年1月15日 2:53 AM #61276nanbuキーマスターこんにちは。
本体を改造することなくimg-alt を変更する事は可能です。ただフックを使用しますので、WordPress に慣れていないとちょっと戸惑うかもしれません。この技術はWordPress のカスタマイズを行なう上で避けては通れませんので、これを機にマスターされると良いかと思います。こちらの資料を参考にしてください。
https://www.welcart.com/community/archives/1697
http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API
Welcart のimg タグを出力するテンプレートタグ(usces_the_itemImage)はusc-e-shop/functions/template_func.php にあります。それを見ていただくと’usces_filter_img_alt’というフックが有るのが分かると思います。そのフックに充ててフィルターをかけてやることで、自由にalt を設定できます。
2011年1月17日 3:28 AM #61277a2c_gore参加者ご返信ありがとうございます。
早速チャレンジしてみようと思います。
ありがとうございました!
2011年2月9日 8:17 AM #61278a2c_gore参加者こんにちは。以前お世話になりました、a2c_goreです。
その後、自分なりに調べ’usces_filter_img_alt’に以下のようなフィルターフックをつくり、テーマ内の’function.php’に追加したのですがうまくいきませんでした。
add_filter('usces_filter_img_alt' , 'my_img_alt_func' , 10 ,2);
function my_img_alt_func(){
global $post;
$post = $post->ID;
$alt = get_post_meta( $post, '_wp_attachment_image_alt', true );
return $alt[0];
}症状は’Warning: Invalid argument supplied for foreach() in /wordpress/wp-content/pluginsusc-e-shop/functions/template_func.php on line 1319’と表示され’alt=’も出力されません。
Welcart のバージョン:0.9.2
症状を確認したブラウザ:Firefox 3.6.13
もちろん、’template_func.php’の内容には手を入れておりません。
さすがに原因がわかりません。どうか、商品ページ上でimgのaltを出力する方法をお教えください。 よろしくお願いします。
2011年2月10日 3:38 AM #61279nanbuキーマスターコードを拝見いたしましたが、
$post = $post->ID;
はいけません。これを削除して単に$alt = get_post_meta( $post->ID, '_wp_attachment_image_alt', true );
としてみてはどうでしょうか。2011年2月14日 6:33 AM #61280a2c_gore参加者ご回答ありがとうございます。
返信遅くなり申し訳ありません。
ここ数日試行錯誤した結果をご報告します。
どうやら’templete_func.php’の518行目のpreg_replace関数によって、517行目の’usces_filter_img_alt’にフックし代入した値が振り落とされているような状態かと思われます。 ですので、その518行目だけをコメントアウトしてみたところ、altの値にwordpressのメディアライブラリーで登録した情報も反映されました。
ちなみにこのまま一行削除した状態でプラグインを使い続けることで不具合ありますでしょうか? 今のところは問題ないようなのですが、いかがでしょうか?
2011年2月15日 1:31 AM #61281nanbuキーマスター元のalt を表示したかったのですね。
そうならば$post->ID では取れません。このフィルターの今の引数では画像のIDを取得できませんので、画像のIDも取得できるよう修正したいと思います。
「対応状況」で修正状況を確認してください。
仰るように削除していただいても構いませんがアップグレードの際は上書きされてしまうのでご注意ください。
よろしくお願いいたします。
2011年2月16日 8:10 AM #61282a2c_gore参加者ご回答ありがとうございます。
すばらしいプラグインありがとうございます!
welcart応援しています!
今後ともよろしくお願いします。
2011年2月16日 11:42 PM #61283匿名無効こちらこそよろしくお願いします。
2013年2月19日 8:46 AM #61284ted参加者解決済みの所申し訳ありません…
同様のトラブル(?)で問題を抱えております。
WordPress 3.5.1
Version 1.2.3.1301213
で、メイン商品画像やサブ商品画像に自動的に挿入されるaltは「商品名」となりますが、
これをあとから「メディア>ライブラリ>写真>編集」で書き換えた「alt(代替テキスト)」を出力するための方法をご教示いただけませんでしょうか?
目的は「wp-jquery-lightbox」プラグインで画像自体の品名を表示させて、SKUでリストさせたアイテム名と整合させるためです。
よろしくお願いいたします。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。