因此,我了解如何使用下面的内容来添加自定义代码,以特定菜单为目标。
<?php
wp_nav_menu(
array(
\'menu\' => \'Project Nav\',
// do not fall back to first non-empty menu
\'theme_location\' => \'__no_such_location\',
// do not fall back to wp_page_menu()
\'fallback_cb\' => false
)
);
?>
我的问题如下。
比如说,我有一个叫做“primary”的菜单。此菜单中有4个菜单项(下图)。
其中一项称为“简介”。
我想用下面的代码替换“Profile”一词,该代码显示用户配置文件照片,而不是“Profile”。
<?php global $my_profile; ?>
<?php if (is_user_logged_in()) : ?>
<div class="img" data-key="profile"><?php echo get_avatar( get_current_user_id(), 64 ); ?></div>
<?php endif; ?>
因此,最终结果如下所示:
现在,我如何专门针对菜单项标题?
编辑:
因此,我得到了以下基础,我不知道为什么它不起作用。
function nav_replace_wpse_189788($item_output, $item, $args) {
//var_dump($item_output, $item);
if( $args->theme_location == \'primary\' ){
return $items;
if (\'royal_profile_menu_title\' == $item->title) {
global $my_profile;
if (is_user_logged_in()) {
return \'<div class="img" data-key="profile">\'.get_avatar( get_current_user_id(), 64 ).\'</div>\';
}
}
}
return $item_output;
}
add_filter(\'walker_nav_menu_start_el\',\'nav_replace_wpse_189788\',10,2);
这是我的逻辑。首先以“主”菜单为目标,然后查找项目标题“royal\\u profile\\u menu\\u title”,然后用输出替换单词title
(我的菜单标题是“royal\\u profile\\u menu\\u title”:下图)
任何
最合适的回答,由SO网友:s_ha_dum 整理而成
使用walker_nav_menu_start_el
过滤器(不包含所有PHP标记垃圾邮件):
function nav_replace_wpse_189788($item_output, $item) {
// var_dump($item_output, $item);
if (\'Profile\' == $item->title) {
global $my_profile; // no idea what this does?
if (is_user_logged_in()) {
return \'<div class="img" data-key="profile">\'.get_avatar( get_current_user_id(), 64 ).\'</div>\';
}
}
return $item_output;
}
add_filter(\'walker_nav_menu_start_el\',\'nav_replace_wpse_189788\',10,2);
注意:我必须编辑您的代码
return
字符串,而不是
echo
一您可能需要调整
if
有条件的取消注释
var_dump()
看看你需要做什么。