wp_nonce_url() WP 2.0.4

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

Результат функції призначений для виведення на екран, і не підійде для використання його десь ще, наприклад, функції 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.0.2

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *