WPML

Обзор проблемы

При использовании темы оформления 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'])) {

Все известные проблемы

Всё ещё сталкиваетесь с этой проблемой?

Если обновление не устраняет проблему, отправьте запрос в поддержку, и мы разберемся в ней вместе с Вами.