サポート » 使い方全般 » 特定のカスタムメニューにサブタイトルを付ける方法

  • 解決済 chikoko

    (@chikoko)


    functions.phpに以下のコードを記述して、メニューにサブタイトルを付けれるようにしました。

    add_filter('walker_nav_menu_start_el', 'description_in_nav_menu', 10, 4);
    
    function description_in_nav_menu($item_output, $item){
        return preg_replace('/(<a.*?>[^<]*?)</', '$1' . "<br /><span>{$item->description}</span><", $item_output);
    }

    上記設定をヘッダーメニューのみに適用させたいのですが、特定のカスタムメニューのみに適用させるにはどうしたら良いのでしょうか?
    自分では条件分岐の方法が分かりませんでした。。どうぞ宜しくお願いします。

    • このトピックはchikokoが2年、 8ヶ月前に変更しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    walker_nav_menu_start_el のコールバック関数の第4引数 $args (wp_nav_menu() の引数) の中に theme_location (テーマで使われる位置) があるので、これで判定するのはどうでしょうか。

    例:
    function description_in_nav_menu($item_output, $item){

    function description_in_nav_menu( $item_output, $item, $depth, $args ) {
    	if ( 'メニューの位置のスラッグ' !== $args->theme_location ) return $item_output;
    トピック投稿者 chikoko

    (@chikoko)

    ishitakaさま、ありがとうございます!
    回答いただいたコードで実現できました。
    分かりやすく説明もありがとうございました。大変助かりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「特定のカスタムメニューにサブタイトルを付ける方法」には新たに返信することはできません。