wp_nonce_url()
Додає до URL перевірочний ключ nonce, який використовується для захисту: ?_wpnonce=9d6bd884a1
.
Результат функції призначений для виведення на екран, і не підійде для використання його десь ще, наприклад, функції esc_html() , так деякі символи URL можуть виявитися зіпсованими.
Працює на основі:
wp_create_nonce()
wp_create_nonce()
1 раз – 0.000102 сек
(швидко) | 50000 разів – 2.28 сек
(швидко)
(швидко) | 50000 разів – 2.28 сек
(швидко)
Хуків немає.
Повертає
Строку
. Фрагмент URL.
Використання
<?php wp_nonce_url( $actionurl, $action ); ?>
-
$actionurl
(рядок) (обов’язковий) -
URL До якого потрібно додати параметр перевірки (nonce).
За замовчуванням: ” -
$action
(рядок) -
Унікальна назва кодування. Воно використовуватиметься під час перевірки.
За замовчуванням: ” -
$name
(string) -
Ім’я параметра з кодом nonce.
За замовчуванням: ‘_wpnonce’
Приклади
#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
#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 "Перевірка не пройдена";
#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 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 ) ); }