WordPressカスタムメニューの<div>を消す
WordPressのカスタムメニューを
functions.phpに
function menu_setup() {
register_nav_menus( array(
'global' => 'グローバルメニュー',
'side' => 'サイドメニュー',
'footer' => 'フッターメニュー',
) );
}
add_action( 'after_setup_theme', 'menu_setup' );
と記載すると、WordPressの管理画面の外観>メニュー
でメニューを作成できるようになるのですが
通常の呼び出し呪文※1
<?php wp_nav_menu( array ( ‘theme_location’ => ‘メニュー名‘ ) ); ?>
を表示したいphpファイルに記述すると
<div class="menu-menu-container">
<ul id="menu-menu" class="menu">
<li id="menu-item-数字" class="なんかいっぱい"></li>
</ul>
</div>
と吐き出されてしまうのです。
これを
<nav><ul><li>
にしたいわけで
通常の呼び出し呪文※1ではなく
<nav>
<?php wp_nav_menu( array (
'theme_location' => 'global',
'items_wrap' => '<ul>%3$s</ul>',
'container' => false
) ); ?>
</nav>
を表示したいphpファイルに記述し呪いをかけ表示させる。
これだけでは<ul>や<li>にidやclassが付加されてしまうため
functions.phpに以下追加するとOK
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
return is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}
この記事を気に入ったら
いいね!&フォローしよう最新情報をお届けします