簡體   English   中英

wp_nav_menu中的自定義菜單標簽

[英]Custom menu tags in wp_nav_menu

我一直在嘗試獲取函數wp_nav_menu()來輸出以下html結構:

 <ul> <li><a href="#">LINK</a></li><span>element</span> <li><a href="#">LINK</a></li><span>element</span> <li><a href="#">LINK</a></li><!--no element HERE!--> </ul> 

我嘗試使用'after'和'link_after'之類的參數。 但是第一個輸出</li>標記之前的元素,第二個輸出</a>標記之前的元素。 有什么方法可以在</li>標記后輸出<span>元素? 我了解了Walker類,但是我不太了解它的邏輯-我不太擅長PHP。

我沒有安裝wp對其進行測試,但仍將其保留在此處。 您需要擴展Walker_Nav_Menu類,如下所示:

class custom_walker_nav_menu extends Walker_Nav_Menu 
{
    public function end_el( &$output, $item, $depth = 0, $args = array())
    {
        $output .= "</li><span>element</span>\n";
    }
}

然后將new custom_walker_nav_menu傳遞為wp_nav_menu()函數的$walker參數。 實際上,這個答案是不完整的,無法擺脫您不需要的最后一個<span>元素。 稍后我會嘗試改善它。 就像@ rnevius在他的評論中提到的那樣,這將是無效的HTML,因此,您必須使用afterlink_after

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM