В стандартном текстовом редакторе WordPress, который называется Gutenberg, есть функция автоматической обработки HTML-кода. Это может привести к случайным изменениям в вашем HTML, что нежелательно, особенно если вы работаете над сложным макетом или внедряете сторонний код.
Чтобы предотвратить автоматические изменения, вам необходимо использовать фильтры, доступные в WordPress API. Вот несколько методов для того, чтобы заставить WordPress сохранять ваш HTML-код без изменений:
1. **Использование фильтра 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; }
2. **Использование фильтра 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; }
3. **Использование фильтра 'tiny_mce_before_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.