5

Wordpress は、この ul タグ内に子メニューを出力します...

<ul class="sub-menu">

単純な div をラップするにはどうすればよいですか?

functions.php を使用する方法が望ましいですが、jquery も機能します。

4

2 に答える 2

17

jQuery などを使用して子メニューをラップするのは簡単ですが、この目的で jQuery を使用することはお勧めできません。これを functions.php に配置します。

class Child_Wrap extends Walker_Nav_Menu
{
    function start_lvl(&$output, $depth = 0, $args = array())
    {
        $indent = str_repeat("\t", $depth);
        $output .= "\n$indent<div class=\"custom-sub\"><ul class=\"sub-menu\">\n";
    }
    function end_lvl(&$output, $depth = 0, $args = array())
    {
        $indent = str_repeat("\t", $depth);
        $output .= "$indent</ul></div>\n";
    }
}

メニューがヘッダーで生成されていると想定しているので、header.php (または wp_nav_menu 関数を利用しているファイル) に移動し、「wp_nav_menu」で始まるものを探します。

表示するコードがないため、使用されている引数 (ある場合) を推測することしかできません。括弧の間に何もない「wp_nav_menu()」のように見える場合は、次のように変更します。

wp_nav_menu(array('walker' => new Child_Wrap()))

それ以外の場合は、メニューで使用しているコードを使用して質問を編集してください。さらにサポートさせていただきます。

于 2012-04-26T00:57:07.710 に答える