wordpressでカスタムメニューに自動付与される邪魔なclassとdivなどを消す
カスタムメニューは管理画面からページ内リンクを設定できるので非常に便利ですが、そのまま使うと<li>タグに大量の邪魔なクラスがついたり、勝手に<div class=”menu-menu-container”>タグや<ul>にidとclassが生成されてしまいます。
あっても無くてもSEO的問題ないんですが、ソースはスッキリしてた方が何かと有利に働くので、邪魔なものは消しちゃいましょう。
1.functions.phpに<li>タグのクラス削除の命令を入れる
// カスタムメニューliの邪魔なクラスを消す 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')) : ''; }
これを入れておくとclass、idが削除されます。current-menu-itemのクラスは便利なので残す設定です。
2.header.phpの「wp_nav_menu」に記述を加える
<?php wp_nav_menu(); ?>
これを↓に変更
<?php wp_nav_menu( array ( 'items_wrap' => '<ul>%3$s</ul>', 'container' => false ) ); ?>
items_wrapは<ul>につくクラスとidを無しにする設定なので、既にcssで設定してしまっている場合は面倒なので無しでもいいです。
containerはdivなどで囲まない設定にしてます。falseではなくnavタグなど設定する事もできます。
コメント入力欄