Котировки экранируются внутри 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() который должен заботиться обо всем для вас.

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