Иногда бывают ситуации, когда нужно изменить ID поста. Когда такое бывает нужным? Например, после восстановления блога из резервной копии или переноса нескольких постов из одного блога в другой. WordPress надежно защищает ID любой записи в базе данных, и понятно, почему – это уникальный номер, к котором у привязываются все остальные данные. По ID поста можно вывести все, что его касается: комментарии, присоединенные файлы, метки, цитату поста, содержимое, автора, и любые мета-данные. Поэтому смена ID как механизм в WordPress отсутствует – любая смена ID приведет к потере всех дополнительных данных, произвольных полей, комментариев. Тем не менее вы точно осознали, что только смена ID поста решит вашу проблему, позволив обойтись без редиректов и дополнительного редактировани – ну что-ж, такое тоже возможно, причем сделать это не очень сложно.
Для того, чтобы сменить ID поста, нужно напрямую отредактировать этот номер в базе данных – это можно сделать с помощью phpMyAdmin. Откройте phpMyAdmin, выберите используемую для вашего сайта базу данных, и перейдите на вкладку SQL.
Выполните следующий запрос:
UPDATE wp_posts SET ID=НОВЫЙ_ID WHERE ID=СТАРЫЙ_ID;СТАРЫЙ_ID – это текущий ID поста, вы его хотите поменять
НОВЫЙ_ID – это ID, на который вы хотите сменить старый
Пример:
UPDATE wp_posts SET ID=185 WHERE ID=180;
185 – это новый ID поста, 180 – это старый ID поста.
Этот запрос поменяет ID со старого на новый, вы увидите сообщение о том, сколько изменений в базе данных было сделано (обычно смена ID – это одно изменение). После этого можете перейти в административную часть блога и убедиться, что ID изменился со старого на новый. Однако не удивляйтесь, что в этом посте исчезли все категории, метки и произвольные поля – так и должно быть, ведь все эти данные, как я писал выше, привязываются к ID.
[info txt=”Любое изменение в базе данных необратимо. Поэтому перед прямым редактированием базы данных делайте резервную копию базы, а так же копию содержимого поста и произвольных полей до смены ID.”]