【WordPress】カスタムメニューのIDやクラスを簡略化する - wp_nav_menu

カスタムメニューの作成にあたって、wp_nav_menuをテーマ内に組み入れると、カスタムメニューのHTMLをはいてくれます。

ただ、IDやクラスが各ページスラッグ毎に設定されてしまい、各ページスラッグ毎に見栄えを変更したい場合などは便利ですが、そうで無い場合はCSSの記述がややこしくなります。そういった場合は、以下をfunctions.phpに記述することで、カスタムメニューのHTMLを簡略化できます。

<?php
add_filter
('nav_menu_css_class''my_css_attributes_filter'1001);
add_filter('nav_menu_item_id''my_css_attributes_filter'1001);
add_filter('page_css_class''my_css_attributes_filter'1001);
function 
my_css_attributes_filter($var) {
  return 
is_array($var) ? array_intersect($var, array('current-menu-item')) : '';
}
?>
参照情報

こちらを記述することで、出力されるHTMLにはMENU自体のIDとクラス、それから現在開いているページに"current-menu-item"というクラスが付与されるだけになります。