将登录和注销按钮添加到顶部菜单栏

时间:2013-03-08 作者:Adam

我得到了在主菜单栏中插入菜单栏的代码,但我找不到将其插入主菜单栏上方的辅助菜单栏或顶部菜单栏的方法。有人能教我怎么做吗?

add_filter( \'wp_nav_menu_items\', \'add_loginout_link\', 10, 2 );
function add_loginout_link( $items, $args ) {
    if (is_user_logged_in() && $args->theme_location == \'menu_top\') {
      $items .= \'<li><a href="\'. wp_logout_url() .\'">Log Out</a></li>\';
    }
    elseif (!is_user_logged_in() && $args->theme_location == \'menu_top\') {
      $items .= \'<li><a href="\'. site_url(\'wp-login.php\') .\'">Log In</a></li>\';
    }
    return $items;
}
============其他信息==============我正在使用自定义社区主题1.4。以防万一会有帮助,而且I tried to use \'menu_top\' as keyword rather than primary, but it does not work, it originally was primary!

==================更多信息======================好的,在请求中,我找到了更多信息,但在我尝试时,menu\\u top不起作用,似乎这些代码已经告诉了菜单的名称,对吗?

// This theme uses wp_nav_menu() in one location.
    register_nav_menus(array(
        \'menu_top\' => __(\'Header top menu\', \'cc\'),
        \'primary\' => __(\'Header bottom menu\', \'cc\'),
    ));

1 个回复
SO网友:s_ha_dum

“PRIMARY”和“secondary”菜单栏在断章取义和没有解释的情况下实际上没有任何意义。然而,(猜测很多)如果菜单的构造是一致的,那么您应该能够找到第二个菜单的“名称”,并添加一个条件,如(为可读性而过度格式化):

if (
  is_user_logged_in() 
  && (
    $args->theme_location == \'menu_top\' 
    || $args->theme_location == \'other_menu_name\'
  )
) { 
    $items .= \'<li><a href="\'. wp_logout_url() .\'">Log Out</a></li>\';
与相同elseif.

查找呼叫wp_nav_menu 在主题文件中查找第二个菜单的“名称”。

结束

相关推荐

通过挂钩替换wp-login.php登录表单,并使用带有wp-登录表单验证的自定义表单

我正在自定义所有wp登录。php表单,即登录、丢失密码、注册等。我有一个工作模型,但当我解码在自定义表单上抛出默认错误消息时,我想一定有更好的方法来创建自定义表单,并且仍然使用wp登录。php来完成所有繁重的工作,以及为什么在wp登录时编写自定义表单验证。php做得足够好吗?我正在构建一个插件。这是我的工作解决方案:1) 每个表单(登录、丢失通行证等)都是单独的。php文件。I表单的文件由get\\u header()和get\\u footer()包装2) 每个表单的操作都是wp登录。php。因此,当我