画面の上部に3列目のメニューを表示する

0
いいねをした人: 居ません
  • このトピックには2件の返信、2人の参加者があり、最後にみしまにより3年、 10ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #65707
    みしま
    参加者
    58

    【お使いの 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
    いいねをした人: 居ません
    #65764
    アバター画像キタジマ タカシ
    参加者
    2421

    もしヘッダー位置が「ノーマル」であればこれでも見え方は変わらないと思いますが、ちゃんと「ヘッダーの中」にメニューを入れたいのであれば 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
    いいねをした人: 居ません
    #65836
    みしま
    参加者
    58

    ob_start()を知らなかったので勉強になりました。

    当初理解できなかったのですが、昨日の配信で
    ・snow_monkey_template_part_render_<slug>
    ・str_replace
    に触れてらっしゃったのでどのような処理かわかりました。

    記載いただいたようにするとheaderとして上部固定などもできるようになりました。
    お手数おかけしました。ありがとうございました。

    1
    いいねをした人: 居ません
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • トピック「画面の上部に3列目のメニューを表示する」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。