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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • alexx

    ДАЙТЕ Я ВАС РАСЦЕЛУЮ!!!!
    3 дня парился незнал как заставить менять вордпресс адреса относительно того на какую сетевуху из двух на сервере я зашел.

  • VRS

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

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

      • VRS

        Спасибо за оперативный ответ :), добавила Ваш сайт в закладки.
        Какое же стандартное решение лучше? Я уже столько инфы перечитала по переносу с локалки на хостинг, что запуталась…

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

  • Maks

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

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

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

  • compman

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

  • Новичок

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

    • Neolot

      Куда угодно, но лучше до строки:
      /* That's all, stop editing! Happy blogging. */

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

  • nick

    Пасиб) реально выручил!

  • Сергей

    Огромное спасибо! Помогло не перелопачивать базу в txt!

  • добавил строчки. нажимаю на ссылки, выдается сообщение не создан wp-config.php? в чем может быть причина? подскажите п-та.

  • Столкнулся с этой проблемой в обратном процессе — клонирование репозитория с боя на локльный сервер.

    Спасибо!

  • Анна

    Спасибо огромное вы мне очень помогли. Я уже весь мозг сломала не могла зайти в базу. 2 недели мучений, а тут оказывается очень умные люди всего две строчки и опа все готово. Спасибо вы молодцы!!!!!!!

  • xck

    Привет, мне решение не помогло (( изменил адрес сайта в таблице базы (wb_options > siteurl)

  • Алексей

    строки в wp-config.php
    define(‘WP_HOME’, ‘http://’.$_SERVER[‘HTTP_HOST’]);
    define(‘WP_SITEURL’, ‘http://’.$_SERVER[‘HTTP_HOST’]);

    не помогают, правлю руками адреса постов

    • Это решение нужно, чтобы сайт хоть как-то завелся на новом месте. Потом надо править адреса в базе или руками.

      • Алексей

        я всё поправил. грузятся посты, админка, но главная страница все-равно не хочет, каким-то образом запомнила номер порта (http://127.0.0.1:4000/wordpress/), нестандартного, который у меня был раньше, а теперь порт стандартный 80.
        я вроде бы везде адреса поправил, в админке в Settings, в базе данных в wp_options и wp_posts в каждом посте.
        но главная страница wordpress все-равно не грузится. где ещё мог не исправить?

        • Трудно сказать, видимо заморочки в самой теме. В обычном случае у главной нет отдельного адреса, адрес равен домену.