gpt4 book ai didi

php - wp_nav_menu 过滤器,删除特定链接

转载 作者:行者123 更新时间:2023-12-05 09:20:45 25 4
gpt4 key购买 nike

我正在尝试从我的 wordpress 菜单中删除特定链接:

<li class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-1 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="/first/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">First</span></a></li>

<li class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-2 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="/second/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Second</span></a></li>

<li class="ubermenu-item ubermenu-item-type-post_type ubermenu-item-object-page ubermenu-item-3 ubermenu-item-level-0 ubermenu-column ubermenu-column-auto" ><a class="ubermenu-target ubermenu-item-layout-default ubermenu-item-layout-text_only" href="/third/" tabindex="0"><span class="ubermenu-target-title ubermenu-target-text">Third</span></a></li>


function remove_link( $menu ) {
return str_replace( '<a href="', '<a>', $menu );
}
add_filter( 'wp_nav_menu', 'remove_link' );

我要删除的链接具有附加到 li 元素的 .ubermenu-item-3。我该怎么做?

最佳答案

你应该使用 wp_nav_menu_objects filter反而。无需使用可能困惑的字符串替换或 DOM 解析,因为您可以在生成标记之前过滤菜单项数组。

这是来自 http://hookr.io/filters/wp_nav_menu_objects/ 的一些框架代码

// define the wp_nav_menu_objects callback 
function filter_wp_nav_menu_objects( $sorted_menu_items, $args ) {
// make filter magic happen here...
return $sorted_menu_items;
};

// add the filter
add_filter( 'wp_nav_menu_objects', 'filter_wp_nav_menu_objects', 10, 2 );

只需取消设置数组中的适当索引即可。

或者,只需使用专为此目的而设计的 UberMenu 条件扩展。 http://wpmegamenu.com/conditionals

关于php - wp_nav_menu 过滤器,删除特定链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36354277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com