• 解決済 karu96

    (@karu96)


    Twentytenのテーマで、
    複数カスタムメニューを設置しています。
    カスタムメニューを使用しない場合は

    <div class="menu">
        <ul>
            <li >
                <a href="#" title="ホーム">ホーム</a>
            </li>
        </ul>
    </div>

    と出力され、
    カスタムメニューを設定した場合は

    <div class="menu-header">
        <ul id="menu-カスタムメニュー名" class="menu">
            <li >
                <a href="#" title="ホーム">ホーム</a>
            </li>
        </ul>
    </div>

    となりますが、
    カスタムメニューを使用しない場合において
    <div class=”menu”>のところで<div class=”menu-1″>となどと別のクラスを出力する方法があれば…と思い書き込みさせていただきました。
    どなたかご教示いただければ幸いです。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • wp_nav_menu に、container_class 設定項目があります。
    ‘container_class’ => ‘menu-1’
    とすれば良いでしょう。

    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_nav_menu

    トピック投稿者 karu96

    (@karu96)

    php-webさん
    ありがとうございます。

    パラメータでは
    'container_class' => 'menu-nav2', 'menu_id' => 'menu-ul-nav2'
    などとしております。
    なのでカスタムメニューを設定している際はの出力は
    <div class="menu-nav2"><ul id="menu-ul-nav2" class="menu">
    となっております。

    設定している場合の指定は特に問題ないのですが、
    設定していない場合の
    <ul id=”menu-ul-nav2″ class=”menu”> の class=”menu” は
    上記表題の <div class=”menu”> のようにリストタグの前に出力されます。
    この設定していない場合 <div class=”menu”> に対して、
    <div class=”menu-1″> などと連番をつけて独立させたいと考えておりました。

    このような形にしたかった理由として、
    テーマ内では複数カスタムメニューを設置している為、
    カスタムメニューを設定していない場合に対する
    個々のメニューのスタイルを分けたかったことが理由となってます。
    一応CSSの記述は多くなってしまいますが、現在希望の形にはなっております。
    もし <div class=”menu-1″> などとできる方法があればと思い
    書き込ませていただきました。

    wp_nav_menu を設定していないと、(デフォルトでは)wp_page_menu を呼び出すようなので、
    http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_page_menu

    未検証ですが、functions.php の編集で書き換えできると思います。

    `function twentyten_page_menu_args( $args ) {
    $args[‘show_home’] = true;
    $args[‘menu_class’] = ‘menu-1’;
    return $args;
    }
    add_filter( ‘wp_page_menu_args’, ‘twentyten_page_menu_args’ );

    上記はmenu-1決めうちです。もし連番を割り当てたいのであれば、かなり面倒だと思います。

    トピック投稿者 karu96

    (@karu96)

    php-webさん
    ありがとうございます。

    問題なく反映されていました。※<div class=”menu-1″>
    ありがとうございました!
    これで、CSSの配慮も少し軽減されます。
    ちなみに、決めうちで menu-2 や menu-3 などと
    追加指定することはできるのでしょうか??
    PHPに明るくないものですいません。

    上のfunctions.phpを編集するところで、
    $args[‘menu_class’] = $args[‘container_class’];
    とすれば、wp_nav_menuのcontainer_classを引き継ぐ(カスタムメニューを使わない場合も、カスタムメニュー用に設定したclassを反映させる)ことができるようです。
    このやり方が標準的な方法かどうかまでは確認していませんけど。

    トピック投稿者 karu96

    (@karu96)

    php-webさん
    遅くなりすいませんでした。

    $args['menu_class'] = $args['container_class'];
    に修正してみたところ、container_classを引き継ぐ(カスタムメニューを使わない場合も、カスタムメニュー用に設定したclassを反映させる)ことができました!
    これはかなり助かります!

    このような質問にもお応え頂き本当にありがとうございました。
    希望の動作となりましたので解決とさせていただきます。

6件の返信を表示中 - 1 - 6件目 (全6件中)

トピック「カスタムメニューの出力について」には新たに返信することはできません。