В стандартном текстовом редакторе WordPress, который называется Gutenberg, есть функция автоматической обработки HTML-кода. Это может привести к случайным изменениям в вашем HTML, что нежелательно, особенно если вы работаете над сложным макетом или внедряете сторонний код.
Чтобы предотвратить автоматические изменения, вам необходимо использовать фильтры, доступные в WordPress API. Вот несколько методов для того, чтобы заставить WordPress сохранять ваш HTML-код без изменений:
- Использование фильтра
content_save_pre
: Вы можете использовать этот фильтр, чтобы предотвратить обработку содержимого перед его сохранением в базу данных. Пример:
add_filter('content_save_pre', 'my_custom_content_filter'); function my_custom_content_filter($content) { remove_filter('content_save_pre', 'wp_filter_post_kses'); // Отключаем стандартный фильтр return $content; }
- Использование фильтра
content_edit_pre
: Этот фильтр аналогичен предыдущему, но применяется при редактировании содержимого. Пример:
add_filter('content_edit_pre', 'my_custom_content_filter'); function my_custom_content_filter($content) { remove_filter('content_save_pre', 'wp_filter_post_kses'); return $content; }
- Использование фильтра 'tinymcebefore_init': Если вы хотите сохранить HTML-код в редакторе TinyMCE без изменений, вы можете использовать этот фильтр. Пример:
add_filter('tiny_mce_before_init', 'my_custom_tinymce_filter'); function my_custom_tinymce_filter($in) { $in['valid_elements'] = '*[*]'; // Разрешить все HTML-теги и их атрибуты return $in; }
Пожалуйста, помните о том, что отключение автоматической обработки HTML-кода может повлечь за собой уязвимости безопасности и проблемы с безопасностью веб-страниц. Всегда убедитесь, что ваш HTML-код безопасен и не содержит уязвимостей, прежде чем отключать авто-фильтрацию в WordPress.