WordPress как на ладони
wordpress jino

wp_nonce_url() WP 2.0.4

Добавляет в URL проверочный ключ nonce, который используется для защиты: ?_wpnonce=9d6bd884a1.

Результат wp_nonce_url() предназначен для вывода его на экран, и не подойдет для использования его где-то еще, например, в функции wp_redirect(). Потому что перед выводом, функция фильтрует результат с помощью esc_html(), так некоторые символы URL могут оказаться «испорченными».

Работает на основе: wp_create_nonce()
✈ 1 раз = 0.000102с = быстро | 50000 раз = 2.28с = быстро

Хуков нет.

Возвращает

строку, фрагмент URL.

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

<?php wp_nonce_url( $actionurl, $action ); ?>
$actionurl(строка) (обязательный)
URL К которому нужно добавить проверочный параметр (nonce).
По умолчанию: ''
$action(строка)
Уникальное название кодирования. Оно будет использоваться при проверке.
По умолчанию: ''

Примеры

#1 Наглядные примеры работы функции

echo wp_nonce_url( 'http://site.ru/url' );
// получим: http://site.ru/url?_wpnonce=1ef8422137

echo wp_nonce_url( 'http://site.ru/url?arg=data' );
// получим: http://site.ru/url?arg=data&_wpnonce=9d6bd884a1

#2 Пример проверки URL'а:

echo wp_nonce_url( 'http://site.ru/url', 'my_nonce' );
// получим: http://site.ru/url?_wpnonce=4a875e9c59

// затем проверяем ссылку так
if( wp_verify_nonce( $_GET['_wpnonce'], 'my_nonce' ) )
	echo "Проверка пройдена";
else
	echo "Проверка не пройдена";

#3 Добавление nonce в URL для wp_redirect()

Результат wp_nonce_url() предназначен только для вывода на экран. В тех случаях, когда нужно добавить nonce переменную в URL, который будет использоваться где-то еще, не всегда разумно использовать wp_nonce_url(), а лучше добавить nonce в ручную.

Этот пример показывает, как добавить параметр _wpnonce в URL:

$url = '/wp-admin/admin.php?page=foo';
$nonce = wp_create_nonce('my_nonce_key'); // создадим nonce

$nonce_url = add_query_arg( array('_wpnonce'=>$nonce), $url );

echo $nonce_url; //> /wp-admin/admin.php?page=foo&_wpnonce=74c42a878c

Код wp nonce url: wp-includes/functions.php WP 4.8.2

<?php
function wp_nonce_url( $actionurl, $action = -1, $name = '_wpnonce' ) {
	$actionurl = str_replace( '&amp;', '&', $actionurl );
	return esc_html( add_query_arg( $name, wp_create_nonce( $action ), $actionurl ) );
}

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

Из метки: nonce (защита)

Еще из раздела: Защита

wp_nonce_url Комментариев нет

Здравствуйте, !

Ваш комментарий