n-wp.ru — блог о WordPress

Как изменить ID поста

Инструкция по смене ID записи напрямую в phpMyAdmin. Такая смена иногда требуется, если уже не осталось других путей для исправления ошибок. Только будьте готовы к тому, что смена ID может пройти с не очень приятными последствиями.

Иногда бывают ситуации, когда нужно изменить ID поста. Когда такое бывает нужным? Например, после восстановления блога из резервной копии или переноса нескольких постов из одного блога в другой. WordPress надежно защищает ID любой записи в базе данных, и понятно, почему — это уникальный номер, к котором у привязываются все остальные данные. По ID поста можно вывести все, что его касается: комментарии, присоединенные файлы, метки, цитату поста, содержимое, автора, и любые мета-данные. Поэтому смена ID как механизм в WordPress отсутствует — любая смена ID приведет к потере всех дополнительных данных, произвольных полей, комментариев. Тем не менее вы точно осознали, что только смена ID поста решит вашу проблему, позволив обойтись без редиректов и дополнительного редактировани — ну что-ж, такое тоже возможно, причем сделать это не очень сложно.

Для того, чтобы сменить ID поста, нужно напрямую отредактировать этот номер в базе данных — это можно сделать с помощью phpMyAdmin. Откройте phpMyAdmin, выберите используемую для вашего сайта базу данных, и перейдите на вкладку SQL.

Выполните следующий запрос:

СТАРЫЙ_ID — это текущий ID поста, вы его хотите поменять
НОВЫЙ_ID — это ID, на который вы хотите сменить старый

Пример:

185 — это новый ID поста, 180 — это старый ID поста.

Этот запрос поменяет ID со старого на новый, вы увидите сообщение о том, сколько изменений в базе данных было сделано (обычно смена ID — это одно изменение). После этого можете перейти в административную часть блога и убедиться, что ID изменился со старого на новый. Однако не удивляйтесь, что в этом посте исчезли все категории, метки и произвольные поля — так и должно быть, ведь все эти данные, как я писал выше, привязываются к ID.

Любое изменение в базе данных необратимо. Поэтому перед прямым редактированием базы данных делайте резервную копию базы, а так же копию содержимого поста и произвольных полей до смены ID.

Комментировать