WP_LOGINOUT() │ Функция для управления входом/выходом пользователей в WordPress

# WP_LOGINOUT() │ WP 1.5.0

Функция wp_loginout() позволяет отображать ссылку для входа и выхода из аккаунта на вашем сайте WordPress. Эта функция полезна для пользователей, чтобы они могли легко перейти на страницу входа или выхода в зависимости от того, авторизованы они или нет.

## Как работает wp_loginout()

Функция сначала проверяет, вошел ли пользователь в свою учетную запись. В зависимости от этого, она создаст соответствующую ссылку.

### Вход и выход

Если пользователь не авторизован, функция создаст ссылку "Войти". Если авторизован — ссылку "Выйти".

### Используемые функции

Эта функция использует две другие функции:
- wp_login_url() — для получения URL (ссылки) страницы входа.
- wp_logout_url() — для получения URL (ссылки) страницы выхода.

### Производительность

- **1 раз** — 0.000138 сек (быстро)
- **50,000 раз** — 3.67 сек (быстро)

## Хуки функции

- loginout — этот хук позволяет изменить HTML-код ссылки перед тем, как он будет показан.

## Возвращаемое значение

Функция возвращает:
- null или строку. Если аргумент $display установлен в true, то функция ничего не возвращает, а просто выводит ссылку на экран. Если $display установлен в false, то возвращает ссылку.

## Использование функции

Вы можете использовать wp_loginout() следующим образом:

```php
wp_loginout( $redirect, $display );

Где:

  • $redirect (string) — не обязательный параметр, который указывает путь для перенаправления после входа или выхода. По умолчанию: ''.
  • $display (bool) — по умолчанию установлен на true, что означает, что ссылка будет выводиться на экран. Если установить false, функция вернет ссылку.

Примеры использования

Пример 1: Базовое использование

Простой вызов функции:

wp_loginout();

Это создаст ссылку для выхода или входа:

Выйти

Пример 2: Добавление ссылки "Войти/Выйти" в меню навигации

Чтобы добавить ссылку входа/выхода в навигационное меню вашей темы, добавьте следующий код в файл functions.php вашей родительской или дочерней темы:

add_filter( 'wp_nav_menu_secondary_items', 'wpdocs_loginout_menu_link' );

/**
 * Добавить ссылку "Войти/Выйти" в меню с перенаправлением на эту страницу
 */
function wpdocs_loginout_menu_link( $menu ) {
    $loginout = wp_loginout( $_SERVER['REQUEST_URI'], false );
    $menu .= $loginout;

    return $menu;
}

Для некоторых тем, таких как Twenty Thirteen, может понадобиться добавить класс к коду:

$loginout = sprintf( '', wp_loginout( $_SERVER['REQUEST_URI'], false ) );

Изменения

  • С версии 1.5.0 — функция была добавлена.

Код функции wp_loginout

Вот как выглядит исходный код функции:

function wp_loginout( $redirect = '', $display = true ) {
if ( ! is_user_logged_in() ) {
$link = '' . __( 'Войти' ) . '';
} else {
$link = '' . __( 'Выйти' ) . '';
}

if ( $display ) {
    echo apply_filters( 'loginout', $link );
} else {
    return apply_filters( 'loginout', $link );
}

}

Связанные функции

Функции для работы с входом и выходом:

  • check_password_reset_key()
  • get_password_reset_key()
  • is_login()
  • is_user_logged_in()
  • wp_authenticate()
  • wp_login_url()
  • wp_logout_url()
  • wp_lostpassword_url()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *