Intereting Posts
Какие вещи будут затронуты в случае наличия обновлений WordPress или обновлений тем? Есть ли действие, которое вызывается, когда сообщение восстанавливается из корзины? Как получить общее количество баллов за каждую звезду? Создание страницы wordpress на сайте? Категории и теги, возвращающие 404 на боковой панели при использовании уродливых постоянных ссылок Дубликаты сообщений с разбивкой по страницам WordPress: использование AJAX для получения сообщений и содержимого боковой панели во внешнем приложении Как я могу добавить информацию под именем пользователя на странице users.php? Как перенаправить незарегистрированных пользователей на страницу входа в WordPress и обойти некоторые идентификаторы страниц? Настройка отображаемого изображения при создании сообщения Как я могу хранить данные из настраиваемых полей в пользовательских таблицах? Ограничить редактирование CPT роли пользователя определенными полями / метаданными Дублировать базу данных домена на локальный – Как? Woocommerce checkout field maxlength, введите только поле ввода номера (почтовый индекс) Почему моя переменная comment_form не работает?

Котировки экранируются внутри wp_editor при сохранении с помощью wp_kses_post

Привет, у меня есть экран настроек, где я разрешаю пользователям создавать HTML-письма с удобством редактора, к которым они уже привыкли, из сообщений и страниц с помощью wp_editor ();

Кажется, что все работает нормально, за исключением случаев, когда я пытаюсь сохранить тексты, которые находятся в кавычках, когда значение возвращает его, происходит утечка, я знаю, что это потому, что wp_kses_post (); дезактивирует данные, но что, если пользователь хочет создать HTML-письмо с котировками в нем?

Я знаю, что могу сделать str_replace, но есть ли другой способ? Должен ли я использовать wp_kses_post (); если я планирую разрешить котировки?

Код wp_editor:

wp_nonce_field('tld_wcdpue_settings_nonce_action', 'tld_wcdpue_settings_nonce_field'); $tld_wcdpue_settings_email_content = get_option('tld_wcdpue_settings_email_content'); wp_editor( $tld_wcdpue_settings_email_content, 'tld_wcdpue_settings_wpeditor', array( 'wpautop' => false ) ); 

Код сохранения wp_editor:

 if( isset(//does authentication here) ){ update_option( 'tld_wcdpue_settings_email_content', wp_kses_post( $_POST['tld_wcdpue_settings_wpeditor'] ) ); } 

Когда это будет сохранено в БД, он будет сбежать, так что возвращение будет:

введите описание изображения здесь

Я знаю, что могу просто сделать str_replace, но разве это не победит цель wp_kses_post? Должен ли я использовать его в этом случае? Я также понимаю, что я не избегаю, когда вытаскиваю данные из db, не уверен, как мне нужно, так как я хочу, чтобы HTML отображался в редакторе

Solutions Collecting From Web of "Котировки экранируются внутри wp_editor при сохранении с помощью wp_kses_post"

WordPress всегда избегает кавычек, встречающихся в переменных супер-глобалов. Это делается в https://developer.wordpress.org/reference/functions/wp_magic_quotes/

Скорее всего, вы захотите снять его с помощью stripslashes прежде чем сохранять его в БД. что-то вроде

update_option( 'tld_wcdpue_settings_email_content', wp_kses_post( stripslashes($_POST['tld_wcdpue_settings_wpeditor'] ) ));

Я не считаю, что вам нужно использовать wp_kses_post() .

update_option() запускает sanitize_option() который должен заботиться обо всем для вас.

Протестируйте его и сообщите мне, что произойдет.