wp_magic_quotes()WP 3.0.0

Изменяет глобальные переменные $_GET, $_POST, $_REQUEST, $_COOKIE, $_SERVER - добавляет в их значения волшебные кавычки.

Принудительно обновляет переменную $_REQUEST делая из нее объединенный массив из $_GET + $_POST.

Функция удаляет экранированные слэши если сервер их устанавливает и затем добавляет их снова с помощью функции add_magic_quotes().

Когда срабатывает

Эта функция срабатывает при каждом запросе в WordPress. Поэтому в среде WordPress все данные указанных в глобальных переменных всегда экранированы!

Функция срабатывает сразу после события plugins_loaded. Т.е. после того как файлы плагинов подключены и плагины запущены (инициализированы). Но до того, как был сделан основной запрос WordPress - wp(), до того как была подключена тема и её файл functions.php и до события init.

Что такое волшебные кавычки?

Волшебные кавычки (Magic Quotes) - это процесс автоматического экранирования входящих данных PHP-скрипта. Цель такого экранирования - упростить разработку для новичков.

Автоматическое экранирование устарело с версии PHP 5.3. и было удалено с версии PHP 5.4. Однако в среде WordPress такое экранировании работает до сих пор. Это сделано в целях соблюдения единого стандарта для входящих данных.

Волшебные кавычки экранируют обратным слэшем следующие символы: ' " \ и NULL. Также ведет себя функция addslashes() или её аналог в WordPress wp_slash().

Это внутренняя функция WP

У этой функции нет примеров использования. Потому что её не нужно использовать где-либо, она автоматически вызывается сразу после события plugins_loaded.

Эту особенность WordPress нужно знать, чтобы понимать как будут выглядеть входящие данные при разработке тем и плагинов.

Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.

1 раз — 0.000084 сек (очень быстро) | 50000 раз — 1.83 сек (быстро) | PHP 7.0.8, WP 4.6.1

Хуков нет.

Возвращает

null. Ничего

Использование

wp_magic_quotes();

Примеры

0

#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 6.5.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 );
}