После очередного обновления вордпресса возникла у меня следующая проблема: при написании поста и его последующего сохранения весь контент терялся и, соответственно, весь пост был пустым. Это было довольно обидно.
Оказалось, что виной всему, судя по всему, была кодировка. Начиная с WordPress 4.x в движке появилась какая-то новая фишка для работы с разными кодировками и, видимо, именно поэтому возникала какая-то ошибка и контент в базу не записывался. Я пытался в настройках менять кодировку, пытался менять её у базы и таблиц. Всё без толку, ничего не помогало.
Порылся в интернете и оказалось, что такая проблема у многих. Предлагались варианты отключения всех плагинов и включения по одному и пр. Мне это, естественно не помогало, т.к. посты продолжали сохраняться пустыми, хотя пост, набранный латинскими буквами, сохранялся прекрасно.
Когда я только ставил блог, то выбирал везде кодировку cp1251. Но оказалось, что где-то что-то неправильно выбрано и текст в базе сохранялся как cp1251, но при этом крякозябрами UTF8.
Я решил действовать по хардкору: создал новый поддомен, установил туда свежую версию WP, но уже с кодировкой utf8. В настройках БД в файле wp_config.php указывал старую, но изменил префикс таблиц. Проверил, что тексты сохраняются нормально и начал переносить контент.
Надо сказать, в WP миграция контента сделана очень просто: на старом сайте надо зайти в Консоль — Инструменты — Экспорт. Там я выбрал «все записи» и экспортировал это всё в XML файл, который надо импортировать на новом. Импорт находится там же в Инструментах. Во время импорта WP предлагает переопределить авторов постов, где я выбрал созданного при установке пользователя (ведь я один здесь посты и пишу). Всё! Все посты, картинки, комментарии были перенесены.
Далее в wp_config.php старого сайта я только изменил старый префикс на новый, зашёл в настройки в консоли и поменял там адрес своего сайта.
Теперь у меня всё работает замечательно 🙂