WPML
Статус
Решено

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

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

Обходное решение

Эта проблема возникает из-за конфликта сопоставления таблиц. Если Ваш сервер поддерживает сопоставление utf8mb4_general_ci, Вы можете выполнить следующие действия, предварительно создав полную резервную копию Вашего сайта:


  1. Откройте файл functions.php Вашей темы оформления.

  2. Добавьте этот код:
    // Notice admin_init - will only run in backend
    add_action('admin_init', function() {
    	require_once(ABSPATH.'/wp-admin/includes/upgrade.php');
    	global $wpdb;
    	$mytables=$wpdb->get_results("SHOW TABLES");
    	foreach ($mytables as $mytable)
    	{
    	    foreach ($mytable as $t) 
    	    {       
    	        maybe_convert_table_to_utf8mb4( $t );
    	    }
    	}
    	
    });


  3. Перейдите на любую страницу в консоли Вашего сайта.

  4. Удалите код.

Теперь сопоставление таблиц Вашей базы данных должно быть utf8mb4_general_ci, и содержимое будет доступно для перевода.

Если база данных Вашего сайта использует сопоставление latin1, Вы можете вместо этого применить следующее обходное решение:


  1. Прежде чем продолжить, создайте полную резервную копию Вашего сайта.

  2. Перейдите по ссылке: https://github.com/interconnectit/Search-Replace-DB.

  3. Скачайте ZIP-файл проекта и распакуйте его.

  4. Загрузите распакованную папку в каталог установки WordPress с помощью FTP-клиента.

  5. Перейдите в эту папку — например, http://example.com/Search-Replace-DB-master/

  6. Укажите имя Вашей базы данных, сервер, пользователя и пароль. Вы можете найти эти значения в файле wp-config.php.

  7. Нажмите и проверьте подключение.

  8. Перейдите в конец страницы и нажмите кнопку «Convert to UTF8MB4».

  9. Дождитесь завершения процесса.

  10. После этого нажмите кнопку «Delete me».

 

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