31 янв. 2011 г.

Проблема с переносом Wordpress

Сегодня пришлось минут 20 повозиться с Wordpress. Поэтому опишу здесь проблему и ее решение.

Итак. У вас стоял Wordpress на каком-то хостинге. И префикс таблиц был, например, `wp_`. Вы решили перенести сайт на другой хостинг, при этом изменив и префикс к таблицам на `mysupersite_`.

После успешного переноса при попытке зайти в админку администратором вы получаете радостное сообщение "У вас недостаточно полномочий для доступа к этой странице." (в английском варианте "You do not have sufficient permissions to access this page").

Проблема в том, что в таблице `PREFIX_usermeta` есть некоторые свойства пользователей, которые начинаются с такого же префикса, какой был и у старых таблиц. В данном случае `wp_`. Особенно интересует свойство с именем `wp_capabilities`, которое как раз и определяет ваши права на этом сайте. Вся задача заключается в том, чтобы переименовать все свойства, которые начинаются со старого префикса так, чтобы они начинались с нового префикса. Например, вот так: `mysupersite_capabilities`. В целом все, можно проверять свой доступ в административный интерфейс.

После этого идем в таблицу `PREFIX_options`, находим там строчку со значением `wp_user_roles` и переименовываем это значение в `mysupersite_user_roles`.

Дополнительные полезные советы:

  1. Не забудьте в таблице `PREFIX_options` изменить старые пути к файлам на новые. А также свойство siteurl (если вы поменяли также и домен).
  2. В таблице `PREFIX_posts` найдите все старые пути к картинкам и замените на новые (это бывают как абсолютные пути, так и пути от корня сайта).

На этом все. Пользуйтесь. Если же где-то что-то все еще не работает, проверьте весь дамп базы данных на предмет старых префиксов и замените их на новые.

М. Кечинов.

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

Отправить комментарий