Функция 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 = '
', $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. Она автоматически учитывает состояние авторизации пользователя и настройки сайта.