【发布时间】:2013-09-07 06:50:53
【问题描述】:
add_filter('wp_nav_menu_items', 'add_custom', 10, 2);
function add_custom($items, $args) {
if ($args->theme_location == 'primary') {
$items .= '<li class="custom"></li>';
}
return $items;
}
产生:
<ul id="menu-top">
<li></li>
<li></li>
<li></li>
<li class="custom"></li> /* added custom HTML */
<ul>
但是如果我的 WP 菜单没有“theme_location”怎么办?我可以通过 id/class 而不是“theme_location”来定位我的菜单,或者我可以如何将 HTML 添加到一个特定的菜单?
【问题讨论】:
-
假设您使用的是外观 -> 菜单编辑器,您可以添加一个页面,向页面添加一个特定的类并将其隐藏,而 CSS 则不能。我不知道你还需要什么,所以这可能无济于事。
-
我有一个具体的案例,所以我不能这样做。我简化了我的问题以避免不必要的复杂化,但可以在这里找到更多关于我正在尝试做的事情的细节stackoverflow.com/questions/18658643/…
-
为什么不添加主题位置?
-
我想知道是否可以简单地使用菜单的 id/class 代替。我想为它分配一个主题位置,所以如果我添加
register_nav_menu( 'primary', 'Primary Menu' );并将我的菜单分配给“主菜单”,我还需要做什么? -
我相信这就是您所要做的,但在此之前,您是否尝试过检查 $args 数组以查看其中是否包含 id?
标签: php html wordpress menu navigation