Функция wp_register() в WordPress: использование, хуки, возвращаемое значение

Функция wp_register() в WordPress

Функция wp_register() отображает ссылку на панель управления ("Администрация сайта") для зарегистрированных пользователей и ссылку "Регистрация" для гостей (неавторизованных пользователей).

Примечание: Ссылка "Регистрация" не будет показана, если в настройках администратора не установлен флажок "Каждый может зарегистрироваться".

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

  • wp_registration_url()
  • admin_url()

Время выполнения:

  • 1 раз — 0.000127 сек (быстро)
  • 50000 раз — 3.03 сек (также быстро)

Хуки функции

  • register

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

  • null | String. Функция возвращает пустое значение, если аргумент $display равен true, и возвращает ссылку на регистрацию или админ-панель, если $display равен false.

Использование

wp_register( $before, $after, $display );
  • $before (string) — текст, который будет выведен перед ссылкой. По умолчанию: <li>
  • $after (string) — текст, который будет выведен после ссылки. По умолчанию: </li>
  • $display (true|false) — по умолчанию выводит ссылку, а не возвращает её. По умолчанию: true

Примеры

Пример 1: Отображение ссылки на панель управления или страницу регистрации

Ссылка будет обернута в тег <li>:

wp_register();
/* вывод: 
  • Администрация сайта
  • */

    Пример 2: Без текста "Перед" и "После"

    Этот пример выведет ссылку без обёртки <li>:

    В результате мы получим следующую ссылку, если пользователь не авторизован:

    Регистрация

    Или, если пользователь авторизован:

    Администрация сайта

    Код функции wp_register()

    Функция находится в файле wp-includes/general-template.php и выглядит следующим образом:

    function wp_register( $before = '

  • ', $after = '
  • ', $display = true ) {
    if ( ! is_user_logged_in() ) {
    if ( get_option( 'users_can_register' ) ) {
    $link = $before . '' . __( 'Регистрация' ) . '' . $after;
    } else {
    $link = '';
    }
    } elseif ( current_user_can( 'read' ) ) {
    $link = $before . '' . __( 'Администрация сайта' ) . '' . $after;
    } else {
    $link = '';
    }

    /**
     * Фильтрует HTML-ссылку для страницы регистрации или администрирования.
     *
     * Пользователи направляются на страницу администратора, если они авторизованы,
     * или на страницу регистрации, если она включена и пользователь не авторизован.
     *
     * @since 1.5.0
     *
     * @param string $link HTML-код для ссылки на страницу регистрации или админ-панели.
     */
    $link = apply_filters( 'register', $link );
    
    if ( $display ) {
        echo $link;
    } else {
        return $link;
    }

    }

    Заключение

    Функция wp_register() предоставляет удобный способ создания динамических ссылок для регистрации и доступа к админ-панели WordPress. Она автоматически учитывает состояние авторизации пользователя и настройки сайта.

    Leave a Reply

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