Я управляю Wordpress много лет и у меня около 26000 постов.
В какой-то момент мои почтовые идентификаторы превысили 32-битное целое число, и теперь я использую Wordpress в 64-битной системе.
Я вижу сообщения с идентификаторами, такими как 4863166253.
Я хотел бы переключить свой хостинг на маломощный сервер, как Raspberry Pi, который является 32-битным.
Есть ли способ сбросить идентификаторы постов, чтобы они все были ниже 2 миллиардов?
Вы можете прочитать мой отчет об ошибке Wordpress здесь
Спасибо.
Ответы:
Этот ответ так , как я бы решить вопрос , если я должен был столкнуться с этим, то это означает не ответ , но одна из возможностей.
Все операции, которые я предлагаю, должны выполняться на сервере разработки / локальном сервере с резервной копией базы данных, а не на рабочей или исходной базе данных.
Если у вас 26 000 постов, но номер поста равен 4 863 166 253, то существуют миллионы идентификаторов, которые не используются.
Для решения этой проблемы вам необходимо:
Шаг 1
Для области есть плагины, но это можно сделать с помощью простых необработанных запросов SQL.
Шаг 2
Сбросьте идентификаторы записей, изменив их, чтобы они начинали с 1. Это можно сделать с помощью комбинации PHP + MySQL: если вы извлекаете столбец идентификатора записи в виде массива (например, через
$wpdb->get_col()
), ключи массива (увеличенные на 1) будут новыми идентификаторами сообщений для сообщения, чей текущий идентификатор находится в значениях массива.Обратите внимание, что идентификаторы сообщений должны быть изменены в:
Я предлагаю вам запустить такую процедуру для подмножеств постов, используя постраничные результаты, а не для тысяч строк в целом.
Шаг 3
Установите
AUTO_INCREMENT
индекс для таблицы сообщений на количество сообщений + 1.Выполнено
В конце этого процесса ваш более высокий почтовый идентификатор должен легко находиться в пределах 32-битного целого числа.
Предотвращение пост-лимит достигнут снова
Отключить публикацию ревизий или ограничить их количество (см. Кодекс ).
Переместите старые сообщения (от 2 лет до 5 лет) в отдельный блог в многосайтовой среде, например,
site1-archive.example.com
для сообщений вsite1.example.com
.Это можно сделать с помощью экспортера WordPress с опцией диапазона дат.
Если вы планируете сделать это, будет лучше, если вы сделаете это перед сбросом идентификаторов постов (шаг № 2 выше), таким образом оба блога могут иметь более низкий идентификатор поста.
Конечно, после этого вы должны также установить способ перенаправления заархивированных почтовых URL-адресов на новые URL-адреса.
источник