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

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

  • このトピックには2件の返信、2人の参加者があり、最後にronhomにより12年、 7ヶ月前に更新されました。
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 を使って条件分岐してカスタムメニュー・ウィジェットだけに画像を表示するといった工夫をしなくてはいけません。

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

    #62915
    ronhom
    参加者

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

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