WordPress过滤器可以挂接到菜单li项并添加自定义属性

我有一个正在尝试构建的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

来源:

https://www.srcmini02.com/67653.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?