wp_nonce_url()
Добавляет в 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'
Примеры
#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.6.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 ) ); }