0

wordpress のナビゲーション メニューに div を追加しようとしています。wp_nav_menu はすべてのメニュー項目をロードしますが、構造に div を追加する方法がわかりません。私の目標は、メニュー項目のホバー時にサブメニュー ポップアップを表示し、サブメニュー ブロックの上に矢印イメージを表示して、四角いテキスト バルーンのように見せることです。必要な場所とすべてを取得する方法は知っていますが、そこに div を取得する方法はわかりません。

今のところ、こんな感じ

<ul class="menu">
 <li>
  <a>
   <ul class="submenu">
    <li>
     <a>

そして、私はそれがこのように見えるようにしたい

<ul class="menu">
 <li>
  <a>
   <ul class="submenu">
    <div class="pointer">
     <li>
      <a>

どうすればこれを達成できますか?

4

1 に答える 1

3

最善の策は、Walker クラスを使用することです。これを functions.php ファイルに追加します。

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

そして、ナビゲーション メニューを呼び出している場所で、これを既存の引数に追加します。

<?php
$navArgs = array('walker' => new Walker_Nav_Pointers());
wp_nav_menu($navArgs);
?>

上記の例はテストされていないため、最初からすぐに機能することは保証できませんが、すぐに開始できるはずです。

WP Nav メニューの詳細についてはこちら、カスタム ウォーカーの追加に関する情報はこちらをご覧ください。

于 2012-09-11T18:16:48.617 に答える