• 解決済 ForestRiver

    (@forestriver)


    メニューに英字のもにゅうを挿入したいと考えております。
    そこで以下のコードを挿入しました。

    add_filter('walker_nav_menu_start_el', 'menu_add_description', 10, 2);
    function menu_add_description($item_output, $item){
      return preg_replace('/(<a[^>]+>)([^<]+)</', '$1<div class=ja>$2</div>' . "<div class='en'>{$item->description}</div><", $item_output);
    }

    しかし、意図しないメニューの方が反応しています。(フッターメニュー)
    descriptionを付け加えるメニューを指定できませんでしょうか?

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    add_filter('walker_nav_menu_start_el', 'menu_add_description', 10, 4 );
    function menu_add_description( $item_output, $item, $depth, $args ) {

    として、$args を引数として取得できるようにすると、

    $args->theme_location

    にて、メニュー位置を取得できますので、この値にて条件分岐を行って下さい。

    トピック投稿者 ForestRiver

    (@forestriver)

    ご返答ありがとうございます。

    何とか出すことができました。しかし

    $args->theme_location

    は使用せずになりました。記述したコード

    add_filter('walker_nav_menu_start_el', 'menu_add_description', 10, 4 );
    function menu_add_description( $item_output, $item, $depth, $args ) {
    		return preg_replace('/(<span[^>]+>)([^<]+)</', '$1<span class=ja>$2</span>'."<span class=en>{$item->description}</span><", $item_output);
    }

    です。
    変な形で解決してしまいましたが、有難う御座います。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「特定のメニューだけdescriptionを表示させる。」には新たに返信することはできません。