我有一个正在尝试构建的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]”。
需要通过菜单项对应的page_ID自动填充[Target]。例如, 假设第一个的<li> <a href=””> [PAGE] </a> </ li>链接为Home, 而Home的page_ID为” 21″(示例)。我需要将<li>内的data-magellan-arrival =” [target]”设置为data-magellan-arrival =” 21″。
因此它看起来像:<li class =” menu-item” data-magellan-arrival =” 21″> <a href=””> [PAGE] </a> </ li>
老实说, 我对PHP的了解还不是很好, 而WordPress过滤器/钩子要少得多。希望有人可以指引我正确的方向或向我展示如何做到。
谢谢!
#1
这应该工作:
//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
评论前必须登录!
注册