Перенос WordPress с локального сервера к клиенту, проблема и решение

Представим ситуацию. Вам заказали сделать сайт на WordPress, однако название домена вам не известно. Сайт готов, вы передаете его клиенту.

Через некоторое время клиент обращается к вам с проблемой: мол, файлы залил, базу поставил, но не работает. Знакома ситуация? И вы даже знаете почему так произошло? Подождите, читайте дальше.

Как известно, все настройки сайта на WordPress хранятся в базе данных. Когда Вы делали сайт на локальном сервере, то все пути были построены относительно локального доменного имени (по умолчанию установлено как http://wordpress). Поэтому когда клиент установил сайт на своем хостинге, то даже не смог зайти в админку, ведь пути сайта в базе и на хостинге отличаются. Как быть в такой ситуации?

Прощупав обстановку выясняется, что, чтобы все наладить, надо иметь доступ к базе и исправить путь к сайту в таблице wp_options, а также пути к каждой (!) статье в таблице wp_posts. Хорошо, если статей еще нет или их мало. А если их, например, 100? Надо исправлять путь в каждой статье.

К счастью, есть простое и элегантное решение. Пользуясь им, вам вообще не надо думать о домене клиента.

Достаточно вставить в файл wp-config.php вот эти строчки:

define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST']);

Как несложно догадаться, эти строки подставляют текущее значение домена вместо тех, что указаны в базе.

Вуаля, проблема решена! :)

Метки: ,

Комментарии

  1. Alex Volkov 11.09.2009 в 10:19 #

    Перед переносом зайти в настройки и вбить там урл будущего сайта. Это если со всеми плугами переносить и т.п. А так можно просто записи в хмл экспортировать + архив с темой.

  2. Neolot 12.09.2009 в 23:05 #

    Это способ хорош своей универсальностью, так как достаточно вставить эти 2 строчки и можно свободно переносить WordPress на любой домен. Никаких дополнительных правок или настроек не требуется.

  3. Дмитрий 14.09.2009 в 14:58 #

    Спасибо за полезный совет, очень сократит время при переносе.

  4. gamer 23.12.2009 в 14:33 #

    Спасибо, очень помогли. Действительно очень удобный, и как вы пишите «элегантный» способ.

  5. Денис 24.12.2009 в 02:27 #

    Все равно не открывается ничего, буду копать дальше

  6. alexx 19.01.2010 в 11:59 #

    ДАЙТЕ Я ВАС РАСЦЕЛУЮ!!!!

    3 дня парился незнал как заставить менять вордпресс адреса относительно того на какую сетевуху из двух на сервере я зашел.

  7. VRS 15.09.2010 в 00:37 #

    А если в постах путь у картинок прописан на локальном сервере, Ваше решение сработает? при переносе на реальный сервер они будут отображаться?

    • Neolot 15.09.2010 в 00:43 #

      Да, сработает, но имейте ввиду что это больше скорая помощь, чем стандартное решение

      • VRS 15.09.2010 в 01:39 #

        Спасибо за оперативный ответ :) , добавила Ваш сайт в закладки.

        Какое же стандартное решение лучше? Я уже столько инфы перечитала по переносу с локалки на хостинг, что запуталась...

        • Neolot 15.09.2010 в 01:51 #

          Я в таких случаях делаю просто: открываю дамп базы в текстовом редакторе и автозаменой прохожу по всем путям. Может это не лучший способ, но он работает. Только надо внимательно смотреть что автозаменяешь, чтобы не затереть лишнего.

  8. Maks 28.10.2010 в 21:48 #

    второй на очереди расцеловать )))

    Спасибо большое, долго мучался, пока не нашёл вашу страничку!

  9. Павел 16.11.2010 в 11:34 #

    спасибо за совет.

  10. ufolog 09.03.2011 в 17:28 #

    Класс сейчас буду пробовать. Пожелайте удачи!

  11. compman 19.04.2011 в 14:25 #

    Спасибо, выручил!!!

  12. Новичок 19.05.2011 в 11:35 #

    Здрастье! а куда именно вставлять строки? открыть в Нотпаде файл конфиг и тупо перекопировать эти строки куда угодно?!

    • Neolot 19.05.2011 в 12:32 #

      Куда угодно, но лучше до строки:

      /* That's all, stop editing! Happy blogging. */

  13. алексей 23.03.2012 в 19:40 #

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

Ваше мнение

Если вам нужно вставить код, оберните его в специальный шорткод [php], [html], [css], [js].
Например: [js]Ваш код[/js]