Я думаю, что ответ на ваш вопрос сейчас "Нет".
Нет простого способа запуска maybe_convert_table_to_utf8mb4
на сайтах, если они уже были обновлены после WP 4.3 на сервере, который не отвечал требованиям, изложенным в этом посте:
https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade/
Обратите внимание, что, основываясь на исходном коде WP, кажется, что они перенесли это из последовательности обновлений 4.2 в 4.3 (она больше не присутствует в 4.2, которая теперь вообще не имеет обновлений), возможно, надеясь привлечь больше пользователей на борт.
Так что это ваш ответ, и это отстой, но он более точен, чем остальные ¯_ (ツ) _ / ¯
В настоящее время мы работаем над созданием простого сценария, который позволит вам запустить суть последовательности обновления на основе ловушки действий. Если мы сможем сделать его стабильным и работающим, мы постараемся вернуться и поделиться им здесь, чтобы другие могли его использовать.
Наш основной план состоит в том, чтобы извлечь фактическую часть базы данных upgrade_430()
, изолировать ее от системы обновления базы данных и запустить ее вручную.
РЕДАКТИРОВАТЬ: РЕШЕНИЕ НИЖЕ
Хотя нет простого способа запуска сценария, здесь есть ручной обходной путь, основанный на использовании, upgrade_430()
но выполненный в виде вставки.
https://gist.github.com/carlalexander/4106cfaaf405cec454ba195631bcb6bc
Вы можете поместить это в плагин или просто вставить в файл functions.php. В любом случае это должно быть ВРЕМЕННО.
Он настроен на автоматический запуск при посещении https://yoursite.com/?update-utf8bm4=1
Это гарантирует, что он запускается только один раз, и вы можете выбрать, когда (для больших баз данных это может занять некоторое время, и вы не хотите, чтобы кто-либо редактировал сообщение, пока оно происходит).
Если вы не хотите использовать триггер GET, просто удалите add_action
деталь и if (!isset($_GET['update-utf8bm4']))
деталь.
Опять же: УДАЛИТЕ ЭТО, КОГДА ЗАВЕРШИТЕ, вы не хотите оставлять триггер GET как этот, лежащий вокруг :)
maybe_convert_table_to_utf8mb4
(как и любое обновление WP)? Вы не упомянули об этом в ответе;)