[英]how to add data attribute to a specific <li> element in wordpress nav menu
[英]WordPress filter to hook into menu <li> items and add a custom attribute
我有一個正在嘗試構建的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過濾器/鈎子要少得多。 希望有人可以指引我正確的方向或向我展示如何做。
謝謝!
這應該工作:
//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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.