我有一个WordPress模板,我正在尝试构建,我似乎无法弄清楚如何挂钩到WordPress输出的菜单,并为该菜单的<li>
标签添加自定义属性。当前菜单输出如下:
<ul id="menu-main-menu-1" class="top-bar-menu right">
<li class="divider"></li>
<li class="menu-item "><a href="#home">Home</a></li>
<li class="divider"></li>
<li class="menu-item"><a href="#about">About</a></li>
<li class="divider"></li>
<li class="menu-item"><a href="#work">My Work</a></li>
<li class="divider"></li>
<li class="menu-item"><a href="#contact">Contact</a></li>
</ul>
(这些链接仅用于样本)
我需要WordPress自动将以下属性添加到<li>
标记:data-magellan-arrival="[target]"
。
[Target]
需要由菜单项对应的page_ID自动填充。例如,假设第一个<li><a href="">[PAGE]</a></li>
链接是Home,Home的page_ID是“21”(示例)。我需要将data-magellan-arrival="[target]"
内的<li>
设置为data-magellan-arrival="21"
。
所以看起来像是:<li class="menu-item" data-magellan-arrival="21"><a href="">[PAGE]</a></li>
我会诚实地对你说,我在PHP上的表现还不是很好,而且WordPress过滤/挂钩的次数要少得多。希望有人可以指出我正确的方向或告诉我如何做到这一点。
谢谢!
答案 0 :(得分:0)
这应该有效:
//add to functions.php
add_filter('nav_menu_link_attributes', 'magellanlinkfilter');
function magellanlinkfilter($val)
{
$postid = url_to_postid( $val['href'] );
$val['data-magellan-arrival'] = $postid;
return $val;
}
以下是完整的挂钩列表:http://adambrown.info/p/wp_hooks