Функция WP_NONCE_AYS() в WordPress
Функция WP_NONCE_AYS()
отображает сообщение "Ссылка, по которой вы перешли, истекла" вместе с ссылкой на предыдущую страницу.
Что делает эта функция
Функция используется для отображения предупреждений, когда ссылка устарела или когда пользователь пытается выполнить выход из системы.
Возврат значения
Эта функция ничего не возвращает (null).
Синтаксис использования
wp_nonce_ays( $action );
Параметры
- $action (строка) (обязательный) — Указывает действие, например, для выхода из системы сообщение будет: "Вы пытаетесь выйти из SiteName. Вы действительно хотите выйти?"
Примеры использования
Пример 1: Предупреждение о неверной ссылке
Если текущая ссылка неверная (например, устарела), вы можете остановить выполнение PHP и показать сообщение:
global $wp;
$current_url = home_url( $wp->request );
// Если текущая ссылка неправильная
if( $current_url === "https://example.com/destroy/the/world" ){
wp_nonce_ays();
// Остановка выполнения PHP с выводом ссылки на предыдущую страницу
} else {
// Всё в порядке
}
Пример 2: Предупреждение перед выходом
Если вы хотите предупредить пользователя перед выходом, используйте следующий код:
if( $_GET['logout'] ){
wp_nonce_ays( 'log-out' );
}
Изменения
Функция была введена в версии 2.0.4.
Реализация функции
Функция wp_nonce_ays
определена в файле wp-includes/functions.php
. Рассмотрим её реализацию:
function wp_nonce_ays( $action ) {
// Заголовок по умолчанию и код ответа.
$title = __( 'Что-то пошло не так.' );
$response_code = 403;
if ( 'log-out' === $action ) {
$title = sprintf(
/* перевод: %s: Название сайта. */
__( 'Вы пытаетесь выйти из %s' ),
get_bloginfo( 'name' )
);
$redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
$html = $title;
$html .= '';
$html .= sprintf(
/* перевод: %s: URL для выхода. */
__( 'Вы действительно хотите выйти?' ),
wp_logout_url( $redirect_to )
);
} else {
$html = __( 'Ссылка, по которой вы перешли, истекла.' );
if ( wp_get_referer() ) {
$wp_http_referer = remove_query_arg( 'updated', wp_get_referer() );
$wp_http_referer = wp_validate_redirect( sanitize_url( $wp_http_referer ) );
$html .= '
';
$html .= sprintf(
'%s',
esc_url( $wp_http_referer ),
__( 'Пожалуйста, попробуйте снова.' )
);
}
}
wp_die( $html, $title, $response_code );
}
Связанные функции
- Безопасность (Nonce) — специальная защита в WordPress:
check_admin_referer()
check_ajax_referer()
wp_create_nonce()
wp_nonce_field()
wp_nonce_url()
wp_referer_field()
wp_verify_nonce()
Эти функции помогают защитить ваши формы и ссылки от злоумышленников.
Безопасные функции
sanitize_url()
wp_generate_password()
wp_hash()
wp_http_validate_url()
wp_kses_post()
Эти функции помогут сделать ваш сайт более безопасным и защитить его от различных атак.
Теперь вы знаете, как использовать функцию WP_NONCE_AYS()
для отображения предупреждений в вашем приложении на WordPress!