在我的functions.php 文件:
#-----------------------------------------------------------------#
# Custom menu
#-----------------------------------------------------------------#
if ( function_exists( \'register_nav_menus\' ) ) {
register_nav_menus(
array(
\'top_nav\' => \'Top Navigation Menu\',
\'secondary_nav\' => \'Secondary Navigation Menu <br /> <small>Will only display if applicable header layout is selected <a href="\'. admin_url(\'?page=redux_options&tab=4\') .\'">here</a>.</small>\'
)
);
}
//dropdown arrows
class Theme_Arrow_Walker_Nav_Menu extends Walker_Nav_Menu {
function display_element($element, &$children_elements, $max_depth, $depth=0, $args, &$output) {
$id_field = $this->db_fields[\'id\'];
if (!empty($children_elements[$element->$id_field]) && $element->menu_item_parent == 0) {
$element->title = $element->title . \'<span class="sf-sub-indicator"><i class="icon-angle-down"></i></span>\';
$element->classes[] = \'sf-with-ul\';
}
if (!empty($children_elements[$element->$id_field]) && $element->menu_item_parent != 0) {
$element->title = $element->title . \'<span class="sf-sub-indicator"><i class="icon-angle-right"></i></span>\';
}
Walker_Nav_Menu::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
}
以及我的
header.php 文件:
<?php if(has_nav_menu(\'secondary_nav\')) { ?>
<ul class="sf-menu">
<?php wp_nav_menu( array(\'walker\' => new Theme_Arrow_Walker_Nav_Menu, \'theme_location\' => \'secondary_nav\', \'container\' => \'\', \'items_wrap\' => \'%3$s\' ) ); ?>
</ul>
<?php } ?>
它显示一个主要的,更重要的是关于此问题的辅助导航菜单:


我想在“我的帐户”超链接下方添加登录导航超链接,如果用户已登录,则将其删除。
使用“管理”菜单和“设置”添加此项时。。。

即使用户已登录,它也会在此处留下登录导航超链接。
我如何才能将登录导航超链接添加到我的辅助导航菜单中,并在用户登录到网站后将其从列表中删除,如果可能的话,无需其他插件?
非常感谢。
最合适的回答,由SO网友:Milo 整理而成
您可以在打开过滤器的情况下执行此操作wp_get_nav_menu_items
.
在本例中,我们首先检查是管理员屏幕还是用户未登录,如果是这样,就退出。
然后我们查看每个菜单项,找到一个Log In
作为菜单项标题,并将其取消设置。
function wpa_remove_menu_item( $items, $menu, $args ) {
if( is_admin() || ! is_user_logged_in() ) return $items;
foreach ( $items as $key => $item ) {
if ( \'Log In\' == $item->title ) unset( $items[$key] );
}
return $items;
}
add_filter( \'wp_get_nav_menu_items\', \'wpa_remove_menu_item\', 10, 3 );