-
投稿者投稿
-
2021年1月18日 11:22 AM #65707
【お使いの Snow Monkey のバージョン】最新
【お使いの Snow Monkey Blocks のバージョン】最新
【お使いの Snow Monkey Editor のバージョン】最新
【お使いのブラウザ】
【当該サイトのURL】### 実現したいこと
PCのメニューで、1.グローバルナビゲーションPC甩、2.ヘッダーサブナビゲーションで上部に2列メニューが持てますが、3列目のメニューをグローバルナビゲーションPC甩の下に作るとなったらsnow_monkey_prepend_contents
の位置は妥当でしょうか?
wp_nav_menu
の書き方も Snow Monkey 的になにか問題がないかと考えています。### 試したこと
my-snow-monkey.php
に下記を追加して、管理画面からメニューを設定して、CSSをあてています。// メニューの表示位置を追加 register_nav_menu( 'kw-nav', ' kwナビゲーション ' ); add_action( 'snow_monkey_prepend_contents', function() { ?> <div class="kw-nav__wrapper"> <?php wp_nav_menu( array( 'theme_location' => 'kw-nav', // 指定した位置 'container' => 'kw-nav', 'container_class' => 'kw-nav', 'container_id' => 'kw-nav-wrap', 'fallback_cb' => '' ) ); ?> </div> <?php } );
♥ 0いいねをした人: 居ません2021年1月19日 9:32 AM #65764もしヘッダー位置が「ノーマル」であればこれでも見え方は変わらないと思いますが、ちゃんと「ヘッダーの中」にメニューを入れたいのであれば
snow_monkey_template_part_render_header
フックでヘッダーの HTML を書き換える形でヘッダーの中にメニューを入れるのが良いと思います(ヘッダーの内側にはアクションフックが無いので、この HTML 書き換えようフックで代用しています)。add_filter( 'snow_monkey_template_part_render_header', function( $html ) { // 以降の出力を変数に格納する ob_start(); ?> <div class="kw-nav__wrapper"> <?php wp_nav_menu( array( 'theme_location' => 'kw-nav', // 指定した位置 'container' => 'kw-nav', 'container_class' => 'kw-nav', 'container_id' => 'kw-nav-wrap', 'fallback_cb' => '' ) ); ?> </div> <?php // 変数に格納 $menu = ob_get_clean(); // ヘッダーの </header> の前にメニューを追加 return str_replace( '</header>', $menu . '</header>', $html ); } );
♥ 2いいねをした人: 居ません2021年1月20日 6:39 AM #65836ob_start()を知らなかったので勉強になりました。
当初理解できなかったのですが、昨日の配信で
・snow_monkey_template_part_render_<slug>
・str_replace
に触れてらっしゃったのでどのような処理かわかりました。記載いただいたようにするとheaderとして上部固定などもできるようになりました。
お手数おかけしました。ありがとうございました。♥ 1いいねをした人: 居ません -
投稿者投稿
- トピック「画面の上部に3列目のメニューを表示する」には新しい返信をつけることはできません。