0

この関数がWordpressで行うこととほぼ同じことをしようとしています:

add_filter('wp_nav_menu_objects', function ($items) {
    $hasSub = function ($menu_item_id, &$items) {
        foreach ($items as $item) {
            if ($item->menu_item_parent && $item->menu_item_parent==$menu_item_id) {
                return true;
             }
         }
         return false;
     };

     foreach ($items as &$item) {
         if ($hasSub($item->ID, &$items)) {
             $item->classes[] = 'menu-parent-item'; // all elements of field "classes" of a menu item get join together and render to class attribute of <li> element in HTML
         }
     }
     return $items;    
 });

この便利な関数は、サブメニューを含む li にクラス「menu-parent-item」をアタッチします。私がやりたいのは、代わりに同じクラス(またはもちろん他の使用可能なクラス)を事前にリンクに追加することです。言い換えれば、私はこれで終わるでしょう:

<li>
    <a href="index.php" class="menu-parent-item">Homepage</a>
    <ul class="sub-menu">
        <li>

などなど。何か案は?

4

1 に答える 1

1

あなたはいつでもjQueryを使うことができます

$('ul.sub-menu').parent().addClass('menu-parent-item');

編集:まあ、あなたの編集では、prev()メソッドを使用できますか?

$('ul.sub-menu').prev().addClass('menu-parent-item');

于 2012-10-27T00:11:11.467 に答える