商品画像が無い時「No Image」画像を自動挿入するには

フォーラム 要望と提案 商品画像が無い時「No Image」画像を自動挿入するには

  • このトピックには11件の返信、2人の参加者があり、最後にakemiにより13年、 1ヶ月前に更新されました。
12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • 投稿者
    投稿
  • #50662
    akemi
    参加者

    いつも大変お世話になっております。

    商品画像が無い時に「No Image」画像を自動挿入するにはどのように設定すれば宜しいでしょうか?

    #62834
    nanbu
    キーマスター

    こんにちは。

    メイン画像のみ、画像が無い場合はWordPress のdefault.gif を表示するよう仕様を変更しました。Development Version をご利用下さい。

    なお、default.gif の格納ディレクトリパスを変更するための’icon_dir’というフックがWordPress に用意されていますので適宜ご利用下さい。

    #62835
    akemi
    参加者

    こんにちは!

    早速、Development Versionを変更して頂きありがとうございます。無事、WordPress のdefault.gif が表示されました。

    作成したイメージ画像を表示したく、初心者ながらアドバイス通りdefault.gif の格納ディレクトリパスを変更するための’icon_dir’というフックを設置しようとして色々調べましたが、すみません、全然判りませんでした。具体的にどうすればいいか教えて頂けると幸いです。

    どうぞ宜しくお願いします。

    #62836
    nanbu
    キーマスター

    例えばこんな感じです。

    add_filter('icon_dir', 'my_icon_dir');
    function my_icon_dir(){
    return get_stylesheet_directory() . '/images';
    }

    #62837
    akemi
    参加者

    具体的に教えて頂きありがとうございます。テーマのfunctions.php に追加して image を指定しましたが、うまくいきません。

    テーマはtwentyten の子テーマで、子テーマにはfunctions.phpをフォルダーに入れていません。

    twentyten のfunctions.php に追加したところ、default.gifが非表示になってしまったので、もう少し勉強してからやってみます。私にはかなり時間が掛かりそうなのですが、できたら連絡します。

    #62838
    nanbu
    キーマスター

    上のコードは親テーマには使えません。子テーマにfunctions.php を作成してそこに書いてください。

    親テーマに置きたい場合は get_stylesheet_directory() を get_template_directory_uri() に書き換えると使えます。またその場合イメージも親のテーマ内に置かなくてはいけません。

    ただ、twentyten をアップグレードすると消えてしまいますので、子テーマを使うのが良いと思います。

    #62839
    akemi
    参加者

    子テーマに下記コードを入れて、functions.php を作成しました。

    <?php

    add_filter(‘icon_dir’, ‘my_icon_dir’);

    function my_icon_dir(){

    return get_stylesheet_directory() . ‘/images/no-image.png’;

    }

    ?>

    しかし、WP の、icon_dir が消えるだけで、子テーマのimages フォルダーに入れた、画像「no-image.png」は表示されません。

    画像の指定が間違えているのでしょうか?

    #62840
    nanbu
    キーマスター

    ファイルは指定できません。

    フック’icon_dir’ はディレクトリパスにしかフィルタリングできませんので、return はget_stylesheet_directory() . ‘/images’ となります。

    また、images フォルダに設置する画像ファイル名はdefault.gif でなくてはいけません。

    #62841
    akemi
    参加者

    なるほど!ありがとうございます。アドバイス通りにやってみました。

    しかし、画像がリンク切れで表示されます。

    子テーマのimages フォルダに、画像名をdefault.gifにしたオリジナル画像を設置しましたが違うのでしょうか?

    コードはアドバイス頂いた上記を子テーマに設置したfunctions.phpに、コピペしました。画像は、親テーマのtwentyten、welcart_default、それぞれのimages フォルダーにも設置してみましたが、ダメでした。

    アドバイス頂けると幸いです。宜しくお願いします。

    #62842
    nanbu
    キーマスター

    失礼しました。ちゃんと検証しなくちゃいけないですね(^^;

    フックは’icon_dirs’ を使用する事になります。但し、WordPress が利用するicon フォルダを変更する事になるので、まずは同じファイルを用意する事になります。下記のフォルダを中のファイルごと、子テーマのimages の中にコピーしてください。

    wp-includes/images/crystal

    コピーしたファイル、テーマフォルダ/images/crystal/default.gif とテーマフォルダ/images/crystal/default.png をオリジナルのものに差し替えます。

    最後に下のフィルターを設置します。

    add_filter('icon_dirs', 'my_icon_dirs');
    function my_icon_dirs(){
    $icon_dir = get_stylesheet_directory() . '/images/crystal';
    $icon_dir_uri = get_stylesheet_directory_uri() . '/images/crystal';
    $icon_dirs =array($icon_dir => $icon_dir_uri);
    return $icon_dirs;
    }

    これでどうでしょうか。

    将来的には、もっと簡単にWelcart 専用のNoImage を指定できるようにしたいと思います。

    よろしくお願いします。

    #62843
    akemi
    参加者

    ありがとうございます!

    しかし、午前中まで普通に動いていたマルチサイトが、夕方再度立ち上げると物凄く時間が掛かり、急に全部開かなくなってしまいました。何故か原因が判らず四苦八苦中です。

    それまでにやった事は、Aのサイトのカートの中に表示されているBのサイトの商品を削除しただけです。

    ログインもしていません。

    画像の設置までちょっと時間が掛かりそうですが、頑張って直してやってみます。。。

    #62844
    akemi
    参加者

    できました!

    その後、サーバーを再起動したらサイトが表示され一安心して早速作業したらできました。

    (まだ原因は判りませんが、恐らくデーターベースだと思います。)

    そして、アドバイス通りにしてみたところ、NoImage が表示されました。

    時間が掛かった上トラブルの後だったので、かなり感動です。

    >将来的には、もっと簡単にWelcart 専用のNoImage を指定できるようにしたいと思います。

    簡単にできると便利になりますね。

    いつかマルチサイトにも対応されることも期待しております。

    今後も利用させて頂きますので、どうぞ宜しくお願いします^-^

12件の投稿を表示中 - 1 - 12件目 (全12件中)
  • このトピックに返信するにはログインが必要です。