wp_nonce_url()WP 2.0.4

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

Результат функции предназначен для вывода на экран, и не подойдет для использования его где-то еще, например, в функции 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(строка)
Уникальное название кодирования. Оно будет использоваться при проверке.
По умолчанию: ''
$name(string)
Имя параметра с nonce кодом.
По умолчанию: '_wpnonce'

Примеры

0

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

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

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

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

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

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

#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

Список изменений

С версии 2.0.4 Введена.

Код wp_nonce_url() WP 6.5.2

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 ) );
}