首页 > 解决方案 > 在 wp_nav_menu() 中到达页面的 ACF 字段

问题描述

我的标题中有这个简单的片段,显示了网站的主菜单:

<?php wp_nav_menu( array( 
    'theme_location' => 'main-menu',
    'container'=> false ) ); 
?>

菜单显示站点的页面。每个页面都有一个自定义字段,其中添加了名为 的高级自定义字段text_color。这是一个颜色选择器,让我选择悬停在菜单项上时应具有的颜色。我希望在页面本身的设置中包含此字段,而不是作为添加到 Wordpress 菜单设置中的字段。

悬停效果是使用名为 的数据属性创建的data-hovermouseover然后,我通过 JavaScript 在每个菜单项上侦听mouseleave事件,将悬停时菜单项的文本颜色更改为data-hover.

由于每个菜单项都连接到一个页面,我希望能够访问每个菜单项的页面循环,将其添加data-hover到菜单项中的每个锚链接。这可能吗?

标签: phpwordpressadvanced-custom-fields

解决方案


将此添加到主题中的functions.php

add_filter( 'nav_menu_link_attributes', 'add_custom_data_atts_to_nav', 10, 4 );
function add_custom_data_atts_to_nav( $atts, $item, $args ) {

$atts['data-hover'] = $item->title;
return $atts;}

希望这会有所帮助!


推荐阅读