[解決済み] ベストセラーウィジェットに画像と順位の表示

フォーラム 使い方全般 [解決済み] ベストセラーウィジェットに画像と順位の表示

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

    こんにちは、いつも利用させていただいてます。

    ベストセラーウィジェットについてですが、

    現在

    [解決済み] ベストセラーウィジェットに画像を表示させたい。を参考に商品画像を表示しています。

    さらに、Welcart のカスタマイズとフックを参考に順位も表示させようとしているのですが、function.phpにこれを追加すると、順位は表示されますが商品画像が表示されなくなってしまいます。

    なんとか両方表示させることはできませんか?

    #61243
    nanbu
    キーマスター

    こんにちは。

    フィルターフックusces_filter_bestseller は、usces_widget_bestseller_auto_text を上書きしてしまいます。

    リストタグ<li>を含めて全て書き換えてしまいたい場合にusces_filter_bestseller を利用します。

    ですので、順位番号と画像の両方を含めたい場合はusces_filter_bestseller を利用するのが良いと思います。

    #61244
    gabgab
    参加者

    アドバイスありがとうございます。

    このように記述したら両方表示されるようになりました。

    add_filter('usces_filter_bestseller', 'my_bestseller_func', 10, 3);
    function my_bestseller_func() {
    $args = func_get_args();
    list($html, $post_id, $index) = $args;
    $post = get_post($post_id);
    $list = usces_the_itemImage(0, 40, 40, $post, 'return' ) . '<li>第' . ($index+1) . '位<a href="' . get_permalink($post_id) . '">' . $post->post_title . '</a></li>';
    return $list;
    }

    もう一つ質問なのですが、

    この順位をテキストの代わりに画像にするにはどうしたらよいでしょうか?

    仮に、上位3位まで表示するとして、

    1位には金の王冠アイコン(gold.png)

    2位には銀の王冠アイコン(silver.png)

    3位には銅の王冠アイコン(bronze.png)

    といった感じです。

    #61245
    nanbu
    キーマスター

    $index が0からの連番となっています。したがって、

    $index が0 の場合はgold.png を表示

    $index が1 の場合はsilver.png を表示

    $index が2 の場合はbronze.png を表示

    $index が3 以上の場合は文字で表示

    というような条件分岐にすれば良いと思います。

    #61246
    gabgab
    参加者

    なるほど、アドバイスありがとうございます。

    表示させられるように頑張ってみます!

    #61247
    gabgab
    参加者

    こんにちは。

    アドバイスを頂きphpを勉強しながら試行錯誤した結果

    add_filter('usces_filter_bestseller', 'my_bestseller_func', 10, 3);
    function my_bestseller_func() {
    $args = func_get_args();
    list($html, $post_id, $index) = $args;
    $post = get_post($post_id);
    if ( $index == 0 ){
    $img = 'http://sample.jp/wordpress/wp-content/themes/welcart_default/images/gold.png';
    } elseif ( $index == 1 ){
    $img = 'http://sample.jp/wordpress/wp-content/themes/welcart_default/images/silver.png';
    } elseif ($index == 2){
    $img = 'http://sample.jp/wordpress/wp-content/themes/welcart_default/images/bronze.png';
    } else {
    }

    $list = usces_the_itemImage(0, 40, 40, $post, 'return' ) . '<img src="' . $img . '" />
    <li>第' . ($index+1) . '位<a href="' . get_permalink($post_id) . '">' . $post->post_title . '</a></li>
    ';
    return $list;
    }

    このようにしたら順位、商品画像、アイコン全て表示されるようになりました。

    更に質問なのですが、

    URLの部分をthemeフォルダまでのパスを取る関数bloginfo('template_directory')

    で置き換えようと思ったのですが何度やってもうまく表示されないようです。

    ただ単に書き方が間違っているのかもしれませんが、アドバイス頂けないでしょうか?

    if ( $index == 0 ){
    $img = bloginfo('template_directory') .'images/gold.png';

    このように記述していました。

    #61248
    nanbu
    キーマスター

    こんにちは。

    申し訳ありません。

    質問内容が異なる場合は新たにトピックを立てていただきたいのです。

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

    #61249
    gabgab
    参加者

    申し訳ございませんでした。

    新たにトピックを立てさせていただきます。

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