我正在使用Foundation 作为基础和起始主题。我正在尝试构建,但我似乎不知道如何连接到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\\u ID自动填充。举个例子,我们先说<li><a href="">[PAGE]</a></li>
link是Home,Home的page\\u 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的过滤器/挂钩就更少了。希望有人能给我指出正确的方向,或者告诉我怎么做。
SO网友:Piyush Dhanotiya
请将此函数添加到functions.php
主题中的文件:
function add_attribute( $items, $args ) {
$dom = new DOMDocument();
$dom->loadHTML($items);
$find = $dom->getElementsByTagName(\'li\');
foreach ($find as $item ) :
$item->setAttribute(\'data-magellan-arrival\',\'21\');
endforeach;
return $dom->saveHTML();
}
add_filter(\'wp_nav_menu_items\', \'add_attribute\', 10, 2);