カスタムメニューのタイトルに画像をつけたい

ホーム フォーラム 使い方全般 カスタムメニューのタイトルに画像をつけたい

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

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

    ronhom
    参加者

    動作に関するご質問の場合は必ずご記入ください。


    Welcart のバージョン:1.06

    症状を確認したブラウザ:firefox,googlechrome

    ウィジェットタイトルについてなのですが

    Welcart ログインなら♪のアイコンが頭についていたり

    Welcart ベストセラーなら王冠のアイコンが頭についているように

    カスタムメニューなどデフォルトではアイコンがついていない

    ウィジェットにもアイコンをつけたいのですが

    どのphpファイルを修正すればいいのか教えて頂けないでしょうか。何かいい方法はありませんでしょうか。

    #62914

    nanbu
    参加者

    こんにちは。

    WordPress のカスタマイズとなりますが、PHPのプログラミングの方は大丈夫でしょうか。少々難しくなります。

    カスタマイズをするには、まずフックを探します。フックがあればカスタマイズ可能、無ければ諦めるしかありません。

    ただのカスタムメニューでは無く、カスタムメニュー・ウィジェットのタイトルを変更したいということですので、wp-includes/default-widgets.php をご覧下さい。カスタムメニュー・ウィジェットらしきクラスは、WP_Nav_Menu_Widget というクラス名で判断できます。

    次に、そのクラスの中でtitle という文字とapply_filters という文字を探します。すると次の行が見つかります。

    $instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);

    これは’widget_title’というフィルターフックが有り、$instance, $instance, $this->id_base の3つの引数を持っている事を示しています。

    実はこの’widget_title’というフックは、カスタムメニュー・ウィジェットだけの物ではなく全てのウィジェットのタイトルに反映する事になります。つまり、これでフィルターをかけると全てのウィジェットのタイトルの前に同じ画像が表示されてしまう事になります。

    それを避けるために、$instance や $this->id_base を使って条件分岐してカスタムメニュー・ウィジェットだけに画像を表示するといった工夫をしなくてはいけません。

    時間が無くてここで全てを説明する訳には行きませんが、もしチャレンジされてうまく行かなかった時は、ここにコードをご提示くだされば何かアドバイスできるかもしれません。

    フックの使い方に付きましてはこちらをご参照下さい。

    https://www.welcart.com/community/archives/1697

    #62915

    ronhom
    参加者

    ご回答ありがとうございます。難しそうですが勉強し取り組んでみます。

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

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