Редактор Tinymice удаляет теги

Вопрос или проблема

В шаблонах электронной почты я использовал теги if mso, чтобы отобразить другой логотип.

Вот пример кода, который я использовал. Однако каждый раз, когда я сохраняю шаблон, WordPress преобразует мой <!–<![endif]–> в ‘& l t;!–. Как я могу этого избежать?

<!--[if !mso]><!-->
            <img src="logo.png" alt="">
 <!--<![endif]-->

Я пробовал использовать настройку [‘entity_encoding’] = ‘raw’ в tinymice, но безрезультатно.

Буду очень признателен за любую помощь.

Ответ или решение

Приветствую вас!

Ваш вопрос касается проблемы с обработкой тегов в системе управления контентом WordPress, а именно с тегами условной компиляции для Microsoft Outlook, которые не отображаются должным образом в редакторе TinyMCE. Это ситуация, знакомая многим разработчикам и дизайнерам, поскольку HTML-теги, включая условные комментарии, могут быть преобразованы в сущности, что приводит к некорректному отображению кода.

Проблема

Вы используете условные комментарии, чтобы показать разные изображения логотипов в зависимости от платформы, на которой отображается ваше письмо. Однако, когда вы сохраняете шаблон, WordPress автоматически конвертирует ключевые символы в текстовые сущности, что приводит к появлению проблем с отображением:

<!--[if !mso]><!-->
<img src="logo.png" alt="">
<!--<![endif]-->

После сохранения вместо оригинального кода отображается:

&lt;!--&lt;![endif]&gt;

Это происходит из-за того, что TinyMCE и WordPress обрабатывают HTML-код, чтобы предотвратить потенциально небезопасный ввод.

Решения

  1. Использование фильтров WordPress:
    Вы можете использовать фильтр the_content или widget_text в вашем файле functions.php, чтобы отключить авто-преобразование HTML-тегов. Например:

    add_filter('the_content', 'do_shortcode', 11);
  2. Кастомизация TinyMCE:
    В настройках TinyMCE можно отключить фильтрацию определенных тегов. Вам нужно изменить JavaScript-код и добавить настройки конфигурации:

    tinymce.init({
       entities: "161, 162, 163, 164, 165, 166",
       entity_encoding: "raw",
       // Другие настройки TinyMCE
    });
  3. Использование плагинов:
    Рассмотрите возможность использования плагина, который может управлять кодом HTML в визуальном редакторе. Например, плагины вроде "Raw HTML" или "Advanced Custom Fields" могут сохранить ваш код в первоначальном виде.

  4. Модификация шаблонов:
    Если возможно, вместо использования категорий контроля, вы можете создать два отдельных шаблона для разных платформ и затем динамически настраивать их через условные операторы PHP.

  5. Обходные пути с использованием JavaScript:
    В некоторых случаях применение JavaScript для вставки кодовых блоков в момент загрузки страницы может быть рабочим решением.

Рекомендации

Регулярно проверяйте совместимость используемых вами плагинов и тем с последними версиями WordPress. Также поддерживайте резервные копии вашего сайта, чтобы избежать потерь данных при внесении изменений.

Если ни одно из этих решений не подойдет, рекомендуем обратиться к сообществу разработчиков WordPress, так как они могут предложить свежие идеи и подходы.

Надеюсь, эта информация поможет вам правильно настроить ваш HTML в шаблонах и избежать дальнейших проблем. Если у вас есть дополнительные вопросы или нужны уточнения, пожалуйста, дайте знать!

С уважением!

Оцените материал
Добавить комментарий

Капча загружается...