- Статус
- Решено
Обзор проблемы
Если Вы используете конструктор страниц на Вашем сайте, Вы можете заметить, что при добавлении эмодзи в блок контента этот блок не будет доступен для перевода в Расширенном редакторе переводов или Классическом редакторе переводов.
Обходное решение
Эта проблема возникает из-за конфликта сопоставления таблиц. Если Ваш сервер поддерживает сопоставление utf8mb4_general_ci, Вы можете выполнить следующие действия, предварительно создав полную резервную копию Вашего сайта:
- Откройте файл functions.php Вашей темы оформления.
- Добавьте этот код:
// 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 ); } } }); - Перейдите на любую страницу в консоли Вашего сайта.
- Удалите код.
Теперь сопоставление таблиц Вашей базы данных должно быть utf8mb4_general_ci, и содержимое будет доступно для перевода.
Если база данных Вашего сайта использует сопоставление latin1, Вы можете вместо этого применить следующее обходное решение:
- Прежде чем продолжить, создайте полную резервную копию Вашего сайта.
- Перейдите по ссылке: https://github.com/interconnectit/Search-Replace-DB.
- Скачайте ZIP-файл проекта и распакуйте его.
- Загрузите распакованную папку в каталог установки WordPress с помощью FTP-клиента.
- Перейдите в эту папку — например, http://example.com/Search-Replace-DB-master/
- Укажите имя Вашей базы данных, сервер, пользователя и пароль. Вы можете найти эти значения в файле wp-config.php.
- Нажмите и проверьте подключение.
- Перейдите в конец страницы и нажмите кнопку «Convert to UTF8MB4».
- Дождитесь завершения процесса.
- После этого нажмите кнопку «Delete me».