需要将图像添加到标准菜单项WordPress
。由于该网站已经在使用该插件ACF
,因此我决定使用文档中描述的其功能。
这是我们得到的代码。
add_filter('wp_nav_menu_objects', 'my_wp_nav_menu_objects', 10, 2);
function my_wp_nav_menu_objects($items, $args) {
foreach ($items as &$item) {
$icon = get_field('image_icon', $item);
if ($icon !== false) {
$icon_html = '<div class="decor-block_wrapper"><img class="decor-block_stars" src="' . esc_url($icon['url']) . '" alt="' . esc_attr($icon['alt']) . '" /></div>';
$item->title = $icon_html . '<a href="' . $item->url . '">' . $item->title . '</a>';
}
}
return $items;
}
它确实添加了图像,但由于某种原因它将其包装在链接标记中。
如何摆脱这个?我怎样才能做到这一点而不$icon_html
将其包装在链接中?我在文档中读到wp_nav_menu_items之前有,但我不明白如何在这里应用它......所有尝试都不成功。告诉我如何将图像添加到标签之外的菜单项<a>
?
wp_nav_menu_objects 适用于菜单对象。也就是说,有链接。您的代码迭代对象并更改其内容。您的代码中有错误。你试图将一个链接放入一个链接中,但它没有发生,它会尽可能地在输出中纠正它,将其分成两个链接。要在菜单中显示图像,最好使用 Walker
例如我们显示一个菜单
我们自己写函数