wp_nonce_url()

Добавляет значение одноразового ключа в URL в качестве $_GET-параметра. Перед тем, как вернуть URL, очищает результат функцией esc_html(), а значит, преобразует символы & в &.

Читайте, что такое одноразовые числа (nonces) и для чего они нужны в этом уроке.

wp_nonce_url( $actionurl, $action = -1, $name = '_wpnonce' )
$actionurl
(строка) URL, к которому нужно добавить нонс-ключ.
$action
(строка|целое) Ключ, описывающий действие, на основе которого будет создано одноразовое число. Обратите внимание, что рекомендуется подробно описывать действие. Например, если вы хотите сохранить настройки определённого поста, то значение $action может быть например 'save-post-' . $post_id.
$name
(строка) Название $_GET-параметра, которым будет добавлен нонс.

Примеры

На самом деле в описании функции wp_create_nonce() я использовал её для добавления параметра в URL. Предлагаю этот пример и переделать.

Итак, было:

$comment_id = 5;
$url = add_query_arg(
	array(
		'action' => 'delete-comment',
		'comment_id' => $comment_id,
		'nonce' => wp_create_nonce( 'delete-comment-' . $comment_id )
	),
	site_url( 'form.php' )
);
echo '<a href="' . $url . '">Удалить коммент</a>';

Стало:

$comment_id = 5;
$url = wp_nonce_url(
	add_query_arg( // первый параметр – URL
		array(
			'action' => 'delete-comment',
			'comment_id' => $comment_id
		),
		site_url( 'form.php' )
	),
	'delete-comment-' . $comment_id, // второй параметр – экшен
	'nonce' // третий параметр – в какой $_GET-параметр запишется одноразовое число
);
echo '<a href="' . $url . '">Удалить коммент</a>';

Ну или вот ещё пример:

// допустим, у нас есть какой-то URL с двумя параметрами
$url = 'http://localhost/?arg1=value1&arg2=value2';
 
// выведет http://localhost/?arg1=value1&amp;arg2=value2&amp;_wpnonce=abcdef
echo wp_nonce_url( $url, 'action' );
 
// выведет http://localhost/?arg1=value1&arg2=value2&_wpnonce=abcdef
echo add_query_arg( '_wpnonce', wp_create_nonce( 'action' ), $url );

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.