簡體   English   中英

WordPress過濾器可插入菜單 <li> 項目並添加自定義屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM