wp_magic_quotes()
Изменяет глобальные переменные $_GET, $_POST, $_REQUEST, $_COOKIE, $_SERVER - добавляет в их значения волшебные кавычки.
Принудительно обновляет переменную $_REQUEST делая из нее объединенный массив из $_GET + $_POST.
Функция удаляет экранированные слэши если сервер их устанавливает и затем добавляет их снова с помощью функции add_magic_quotes().
Когда срабатывает
Функция срабатывает при каждом запросе в WordPress.
Функция срабатывает сразу ПОСЛЕ события plugins_loaded.
Поэтому в среде WordPress все данные всегда экранированы, но только ПОСЛЕ события plugins_loaded! Т.е. после того как файлы плагинов подключены (плагин загружен и инициализирован), но до того как была подключена тема и её файл functions.php и до события init.
Что такое волшебные кавычки?
Волшебные кавычки (Magic Quotes) - это процесс автоматического экранирования входящих данных PHP-скрипта. Цель такого экранирования - упростить разработку для новичков.
Автоматическое экранирование устарело с версии PHP 5.3. и было удалено с версии PHP 5.4. Однако в среде WordPress такое экранировании работает до сих пор. Это сделано в целях соблюдения единого стандарта для входящих данных.
Волшебные кавычки экранируют обратным слэшем следующие символы: ' " и NULL. Также ведет себя функция addslashes() или её аналог в WordPress wp_slash().
Это внутренняя функция WP
У этой функции нет примеров использования. Потому что её не нужно использовать где-либо, она автоматически вызывается сразу после события plugins_loaded.
Эту особенность WordPress нужно знать, чтобы понимать как будут выглядеть входящие данные при разработке тем и плагинов.
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуков нет.
Возвращает
null. Ничего
Использование
wp_magic_quotes();
Примеры
#1 Удалим обратные слэши там где они не нужны
При получении JSON строки её нужно очистить чтобы в дальнейшем распарсить и использовать в коде.
$json = strval( $_POST['urls'] );
// Unfortunately, WP applies magic quotes to POST data.
if ( function_exists('wp_magic_quotes') && did_action('plugins_loaded') ) {
$json = stripslashes( $json );
}
Список изменений
| С версии 3.0.0 | Введена. |
Код wp_magic_quotes() wp magic quotes WP 7.0.2
function wp_magic_quotes() {
// Escape with wpdb.
$_GET = add_magic_quotes( $_GET );
$_POST = add_magic_quotes( $_POST );
$_COOKIE = add_magic_quotes( $_COOKIE );
$_SERVER = add_magic_quotes( $_SERVER );
// Force REQUEST to be GET + POST.
$_REQUEST = array_merge( $_GET, $_POST );
}