wp_nav_menuはワードプレスの管理画面で設定した、メニューをulとliで出力してくれる関数です。この出力したliに任意のクラスを付与するPHPのコードを解説いたします。
wp_nav_menuの書式
wp_nav_menuの書式は下記のようになります。
$args = array( 'container' => '全体をくるむタグ', 'menu'=> 'メニュー名', 'depth' => サブメニューで出力する深さ, 'menu_class' => 'メニュー全体のクラス' ); echo wp_nav_menu($args);
しかしliにクラスを指定する処理はありません。このためliにクラスを指定するフックをfunctions.phpに追加します。
function add_additional_class($classes, $item, $args) { if(isset($args->add_li_class)) { $classes[] = $args->add_li_class; } return $classes; } add_filter('nav_menu_css_class', 'add_additional_class', 1, 3);
このことによって、add_li_classにクラス名を指定するとliにクラスが出力できるようになります。
Menu という名称のメニューの一番上の階層のメインメニューだけを出力しliにmanulistというクラスを付与したい場合のコードは下記のようになります。
$args = array( 'container' => 'ul', 'menu'=> 'Menu', 'depth' => 1, 'menu_class' => '', 'add_li_class' => 'manulist' ); echo wp_nav_menu($args);
WordPress ワードプレスのテーマやプラグインの修正・カスタマイズなどのコーディングのご依頼ご相談はWPドクターまでお気軽にお送りください