- Статус
- Решено
- Заявлено для
- WPML Multilingual CMS 4.6.6
- Связанный плагин/тема
- Divi
- Теги темы
- ATE, Compatibility
Обзор проблемы
При использовании темы оформления Divi Вы заметите, что когда текст кнопки, содержащий апостроф, переводится с помощью WPML, апостроф отображается в виде HTML-сущности.
Обходное решение
Пожалуйста, перед выполнением этих действий создайте полную резервную копию Вашего сайта.
- Добавьте следующий код в файл functions.php Вашей темы оформления:
// WPML workaround for compsupp-7001 add_filter('do_shortcode_tag', 'wpml_compsupp7001_decode_et_pb_button_text', 10, 4); function wpml_compsupp7001_decode_et_pb_button_text($output, $tag, $attr, $m) { if ( class_exists('Sitepress') && 'et_pb_button' === $tag && isset($attr['button_text'])) { // Decode both the ampersand and the apostrophe $output = html_entity_decode($output, ENT_QUOTES, 'UTF-8'); } return $output; }
Обратите внимание, что если Вы используете кнопку слайдера, Вам нужно будет использовать эту строку:
if ( class_exists('Sitepress') && 'et_pb_slide' === $tag && isset($attr['button_text'])) {Вместо:
if ( class_exists('Sitepress') && 'et_pb_button' === $tag && isset($attr['button_text'])) {
А если Вы используете элемент аккордеона, Вам нужно будет использовать эту строку:
if ( class_exists('Sitepress') && 'et_pb_accordion_item' === $tag && isset($attr['title'])) {Вместо:
if ( class_exists('Sitepress') && 'et_pb_button' === $tag && isset($attr['button_text'])) {
