[解決済み] 商品詳細ページでのimg-altを利用したい

ホーム フォーラム 使い方全般 [解決済み] 商品詳細ページでのimg-altを利用したい

このトピックには9件の返信が含まれ、4人の参加者がいます。5 年、 2 ヶ月前 ted さんが最後の更新を行いました。

10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • 投稿者
    投稿
  • #50200

    a2c_gore
    参加者

    はじめまして。welcartプラグインを使ってショッピングサイトを製作中の者です。ちなみにwordpress初心者です。

    質問なのですが、商品詳細ページに表示される商品画像(商品マスターより情報を登録し、メディアライブラリより自動でピックアップされる)のimg-altを各画像ごとのオリジナルの物にする方法をお教えください。

    プラグインのwp-Slimbox2などを使って、商品画像をポップアップと同時に各画像ごとのimg-altの情報を表示させたいと考えております。

    標準状態ですと、一つの商品に複数の画像を登録し、かつそれぞれに個別のimg-altをつけても、一律で商品名になって表示されてしまいます。

    single_item.phpの167行目を変更する必要がありそうかと思いますが、なにぶん初心者のためわかりません。

    お忙しいとは思いますが、ご教授ください。

    よろしくお願いします。

    #61276

    nanbu
    参加者

    こんにちは。

    本体を改造することなく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 を設定できます。

    #61277

    a2c_gore
    参加者

    ご返信ありがとうございます。

    早速チャレンジしてみようと思います。

    ありがとうございました!

    #61278

    a2c_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を出力する方法をお教えください。 よろしくお願いします。

    #61279

    nanbu
    参加者

    コードを拝見いたしましたが、$post = $post->ID; はいけません。これを削除して単に$alt = get_post_meta( $post->ID, '_wp_attachment_image_alt', true ); としてみてはどうでしょうか。

    #61280

    a2c_gore
    参加者

    ご回答ありがとうございます。

    返信遅くなり申し訳ありません。

    ここ数日試行錯誤した結果をご報告します。

    どうやら’templete_func.php’の518行目のpreg_replace関数によって、517行目の’usces_filter_img_alt’にフックし代入した値が振り落とされているような状態かと思われます。 ですので、その518行目だけをコメントアウトしてみたところ、altの値にwordpressのメディアライブラリーで登録した情報も反映されました。

    ちなみにこのまま一行削除した状態でプラグインを使い続けることで不具合ありますでしょうか? 今のところは問題ないようなのですが、いかがでしょうか?

    #61281

    nanbu
    参加者

    元のalt を表示したかったのですね。

    そうならば$post->ID では取れません。このフィルターの今の引数では画像のIDを取得できませんので、画像のIDも取得できるよう修正したいと思います。

    「対応状況」で修正状況を確認してください。

    仰るように削除していただいても構いませんがアップグレードの際は上書きされてしまうのでご注意ください。

    よろしくお願いいたします。

    #61282

    a2c_gore
    参加者

    ご回答ありがとうございます。

    すばらしいプラグインありがとうございます!

    welcart応援しています!

    今後ともよろしくお願いします。

    #61283

    匿名

    こちらこそよろしくお願いします。

    #61284

    ted
    参加者

    解決済みの所申し訳ありません…

    同様のトラブル(?)で問題を抱えております。

    WordPress 3.5.1

    Version 1.2.3.1301213

    で、メイン商品画像やサブ商品画像に自動的に挿入されるaltは「商品名」となりますが、

    これをあとから「メディア>ライブラリ>写真>編集」で書き換えた「alt(代替テキスト)」を出力するための方法をご教示いただけませんでしょうか?

    目的は「wp-jquery-lightbox」プラグインで画像自体の品名を表示させて、SKUでリストさせたアイテム名と整合させるためです。

    よろしくお願いいたします。

10件の投稿を表示中 - 1 - 10件目 (全10件中)

このトピックに返信するにはログインが必要です。