Wordpress - добавляем кнопки "Регистрация", "Войти" и "Выйти" в меню
В этой заметке я расскажу, как добавить на вашем wordpress сайте кнопки Регистрация, Войти, Выйти и Перейти в консоль для зарегистрированных и не зарегистрированных пользователей.
Лично я довольно долго искал, как можно добавить кнопку "Регистрация" в меню сайта на Wordpress. При этом эта кнопка должна быть видна только незарегистрированным пользователям. Сделать это я хотел как можно проще - можно было, конечно, просто вписать нужный php код в файл шаблона, воспользовавшись функцией is_user_logged_in() для того, чтобы узнать залогинен человек или нет. Но мне хотелось сделать как можно правильнее)
Вот какое решение я нашел: в файл functions.php, который хранится в папке с вашей темой, нужно добавить следующий код:
//добавляем нужные кнопки в меню add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) { $loginoutlink = wp_loginout('index.php', false); if(!is_user_logged_in()) $items .= '<li><a href="/wp-login.php?action=register">Регистрация</a></li>'; else $items .= '<li><a href="/wp-admin/">Кабинет Автора</a></li>'; $items .= '<li>'. $loginoutlink .'</li>'; return $items; }
Что делает этот код? Всё просто - если человек залогинен - ему будет выведена кнопка выйти и кнопка "Кабинет Автора", ведущая в консоль. А в том случае, человек не зарегистрирован - он увидит кнопочку регистрация и кнопочку войти. Для этого используется функция add_filter(), которая в данном случае позволит повлиять на меню, созданное wordpress.
P.S. Удостоверьтесь, что ваша тема имеет поддержку меню - в тот же файл functions.php строчку add_theme_support('nav-menus');