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

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

#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