Избегание снятия HTML-кода в пользовательском таксономическом мета-поле

Я использую настраиваемое поле формы в пользовательской таксономии для хранения различных данных. Все работает хорошо, за исключением одного конкретного случая, когда я пытаюсь сохранить код вставки iframe (из Bandcamp), который затем будет отображаться в шаблоне позже. WordPress вставляет \ перед любым "в вывод.

Я попытался использовать htmlspecialchars на моем выходе, я также добавил это к значению моего действия в поле редактирования формы. Наверное, я пропущу часть процесса где-то, возможно, в спасении?

Функция сохранения:

 function save_taxonomy_custom_meta_bandcamp_embed_music( $term_id ) { if ( isset( $_POST['term_meta'] ) ) { $t_id = $term_id; $term_meta = get_option( "taxonomy_$t_id" ); $cat_keys = array_keys( $_POST['term_meta'] ); foreach ( $cat_keys as $key ) { if ( isset ( $_POST['term_meta'][$key] ) ) { $term_meta[$key] = $_POST['term_meta'][$key]; } } // Save the option array. update_option( "taxonomy_$t_id", $term_meta ); } } add_action( 'edited_hhie_artists', 'save_taxonomy_custom_meta_bandcamp_embed_music', 10, 2 ); add_action( 'create_hhie_artists', 'save_taxonomy_custom_meta_bandcamp_embed_music', 10, 2 ); 

вы можете использовать esc_attr

 function save_taxonomy_custom_meta_bandcamp_embed_music( $term_id ) { if ( isset( $_POST['term_meta'] ) ) { $t_id = $term_id; $term_meta = get_option( "taxonomy_$t_id" ); $cat_keys = array_keys( $_POST['term_meta'] ); foreach ( $cat_keys as $key ) { if ( isset ( $_POST['term_meta'][$key] ) ) { $term_meta[$key] = esc_attr( $_POST['term_meta'][$key] ); // encoded text with HTML entities } } // Save the option array. update_option( "taxonomy_$t_id", $term_meta ); } } add_action( 'edited_hhie_artists', 'save_taxonomy_custom_meta_bandcamp_embed_music', 10, 2 ); add_action( 'create_hhie_artists', 'save_taxonomy_custom_meta_bandcamp_embed_music', 10, 2 ); 

WordPress всегда сбрасывает все параметры $ _GET и $ _POST. Вы должны разглашать их, обновляя свой вариант в своем коде.