ここはちょっと見せられない

ぜったいぜったい見せられない

Wordpressの標準的なメニュー wp_nav_menu のサブメニューを効果的に隠したい

常時見えているメニューなので、animation とかは不要だけど、メニューがだらだら長くなる時があるので、サブメニュー部分は全部隠したい。

でも、今居るページが属している、つまりカレントであるページはメニューに見えていてほしい。その繋がりである、カレントページの兄弟メニューは見えていてほしい。

wp_nav_menu をやめて、直呼び出しにしてPHPに処理させてもいいけど、せっかくなので、jquery で処理してみた。

<script type="text/javascript">
<!--//
jQuery(function($){
    $(".sub-menu").each(function(){
        var $nav = $(this);
        if (($nav.children().filter(".current-menu-item").length < 1)&&
            ($nav.parent().filter(".current-menu-item").length < 1)) {
            $nav.hide();
        }
    });
});
//-->
</script>

終わり。

ちなみに、jquery を読み込んだ後でないと動かないので、wp_head() より後ろに書いておくこと。重複して先に読み込んでる、もしくは wp_head 読んでない場合はまあ適当に。