@max3277

Добавление ссылок в меню Wordpress?

Как в меню Wordpress добавить ссылку
"Зарегистрироваться" | "Войти" , а если пользователь авторизован, то "Мой аккаунт"
  • Вопрос задан
  • 640 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
/**
 * Добавляем в конец меню ссылки на регистрацию и вход / выход
 * 
 * @param $items string HTML output of navigation menu items
 * @param $args object Navigation menu arguments
 *
 * @return string Modified HTML output of navigation menu items
 */
function add_login_logout_register_menu( $items, $args ) {

	// Проверяем, чтобы не админка и нужное меню (в данном случае - primary)
	if ( is_admin() || 'primary' != $args->theme_location ) {
		return $items;
	}

	// Если юзер авторизован
	if ( is_user_logged_in() ) {

		$items .= '<li><a href="' . home_url( 'my-account' ) . '">' . __( 'My Account', 'textdomain' ) . '</a></li>';
		$items .= '<li><a href="' . wp_logout_url() . '">' . __( 'Log Out', 'textdomain' ) . '</a></li>';

	// Если юзер не авторизован
	} else {

		$items .= '<li><a href="' . wp_login_url() . '">' . __( 'Log In', 'textdomain' ) . '</a></li>';
		$items .= '<li><a href="' . wp_registration_url() . '">' . __( 'Sign Up', 'textdomain' ) . '</a></li>';

	}

	return $items;
}
add_filter( 'wp_nav_menu_items', 'add_login_logout_register_menu', 199, 2 );

Важный момент - функции wp_login_url(), wp_logout_url() и wp_registration_url() будут использовать стандартный URL - wp-login.php. Если у вас произвольная регистрация/авторизация, все эти функции имеют фильтры с аналогичными названиями, через которые можно эти URL заменить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы