Вопрос или проблема
В шаблонах электронной почты я использовал теги 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]-->
После сохранения вместо оригинального кода отображается:
<!--<![endif]>
Это происходит из-за того, что TinyMCE и WordPress обрабатывают HTML-код, чтобы предотвратить потенциально небезопасный ввод.
Решения
-
Использование фильтров WordPress:
Вы можете использовать фильтрthe_content
илиwidget_text
в вашем файлеfunctions.php
, чтобы отключить авто-преобразование HTML-тегов. Например:add_filter('the_content', 'do_shortcode', 11);
-
Кастомизация TinyMCE:
В настройках TinyMCE можно отключить фильтрацию определенных тегов. Вам нужно изменить JavaScript-код и добавить настройки конфигурации:tinymce.init({ entities: "161, 162, 163, 164, 165, 166", entity_encoding: "raw", // Другие настройки TinyMCE });
-
Использование плагинов:
Рассмотрите возможность использования плагина, который может управлять кодом HTML в визуальном редакторе. Например, плагины вроде "Raw HTML" или "Advanced Custom Fields" могут сохранить ваш код в первоначальном виде. -
Модификация шаблонов:
Если возможно, вместо использования категорий контроля, вы можете создать два отдельных шаблона для разных платформ и затем динамически настраивать их через условные операторы PHP. -
Обходные пути с использованием JavaScript:
В некоторых случаях применение JavaScript для вставки кодовых блоков в момент загрузки страницы может быть рабочим решением.
Рекомендации
Регулярно проверяйте совместимость используемых вами плагинов и тем с последними версиями WordPress. Также поддерживайте резервные копии вашего сайта, чтобы избежать потерь данных при внесении изменений.
Если ни одно из этих решений не подойдет, рекомендуем обратиться к сообществу разработчиков WordPress, так как они могут предложить свежие идеи и подходы.
Надеюсь, эта информация поможет вам правильно настроить ваш HTML в шаблонах и избежать дальнейших проблем. Если у вас есть дополнительные вопросы или нужны уточнения, пожалуйста, дайте знать!
С уважением!