Flector

Как вывести в произвольном меню ссылку на авторизацию?

Ссылка авторизации в произвольном меню

Произвольное меню в WordPress при всех своих несомненных достоинствах обладает одним небольшим недостатком - оно не позволяет добавлять в себя ничего кроме статических ссылок. А, например, динамические ссылки на вход и выход с сайта добавить в меню нельзя (так как они содержат динамические параметры, которые нельзя указать заранее). Данную ситуацию можно исправить с помощью небольшого сниппета кода, вставленного в файл functions.php вашей темы:

//добавление ссылки авторизации в меню start
function wph_login_in_menu($items, $args) { 
    $loginoutlink = wp_loginout('index.php', false); 
    $items .= '<li>'. $loginoutlink .'</li>'; 
    return $items; 
}
add_filter('wp_nav_menu_items', 'wph_login_in_menu', 10, 2);
//добавление ссылки авторизации в меню end

Ссылки "Войти" и "Выйти" (в зависимости от авторизованности пользователя) будут выведены последним пунктом во всех произвольных меню сайта (включая виджеты произвольных меню). Если же вам необходимо добавить эти ссылки в конкретное меню темы, то вам нужно использовать такой код:

//добавление ссылки авторизации в меню start
function wph_login_in_menu($items, $args) { 
    if ($args->theme_location == 'primary') {
        $loginoutlink = wp_loginout('index.php', false); 
        $items .= '<li>'. $loginoutlink .'</li>'; 
    }
    return $items; 
}
add_filter('wp_nav_menu_items', 'wph_login_in_menu', 10, 2);
//добавление ссылки авторизации в меню end

Где 'primary' указывает на расположение меню. Будьте тут внимательны - это не имя меню, заданное в админке, а именно расположение меню в теме (области темы).


Комментарии (3 комментария)
  1. Здравствуйте ,я хотел бы узнать а как вывести виджет в меню start
    Виджет плагина Login With Ajax

  2. А где можно глянуть название места меню темы?

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!