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

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

Несмотря на то что WordPress - это популярный движок и для него существует не только встроенная возможность переноса базы данных на другой сервер, но и огромное количество плагинов для этого, я не рекомендую их использовать. На своем опыте я убедился, что при использовании стандартного экспорта-импорта почему-то теряется множество картинок и потом нужно их восстанавливать. На losst еще до сих пор остались статьи с битыми картинками с тех времен. Мы будем делать все вручную с помощью таких инструментов:

  • mysql;
  • rsync;

Этого будет вполне достаточно, если вы менее опытный пользователь, то сюда можно добавить еще два инструмента:

  • phpmyadmin;
  • клиент ftp;

Упор я делаю на VPS, рассчитывая на то, что у вас есть доступ к серверу по SSH. Но эта инструкция может быть использована чтобы выполнить перенос сайта на Wordpres на другой хостинг. Большинство современных хостингов дают доступ к ssh консоли хотя бы в html интерфейсе.

Подготовка к переносу WordPress

Первое на что нужно обратить внимание, и желательно, при регистрации хостинга, это DNS. Нам нужно чтобы пользователи ничего не заметили. А поэтому сервера имен не должны меняться. Лучше всего, если ваши сервера имен будут у регистратора доменных имен и он же будет управлять доменной зоной.

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

Перенос сайта WordPress

Сначала нам нужно перенести все файлы сайта на другой сервер. Конечно, вы можете использовать для этого FTP клиент, сначала скачать все файлы по одному с одного сервера, а потом загрузить по одному на другой. Но это сработает, только если у вас немного файлов. С сайтом в несколько гигабайт это может занять дни. Поэтому будем использовать более простой способ через SSH. Подключитесь к вашему серверу по SSH:

ssh root@address1

rsync -avz -e ssh /папка/с/файлами/сайта root@address2:/папка/для/файлов/сайта/

Естественно, что папка для файлов сайта должна уже существовать. Дальше, на этом сервере нам нужно создать резервную копию базы данных, для наших целей этой команды будет вполне достаточно:

mysqldump -u root -p имя_базы > dump.sql

Если у вас большая база данных, то выполнение может занять несколько минут. Осталось передать базу на другой сервер, кладем ее в домашний каталог:

rsync -avz -e ssh dump.sql root@address2:~/

Если ваш сайт использует https, то нужно передать на новый сервер сертификаты, пока вы не подключите домен и не создадите новые:

rsync -avz -e ssh /путь/к/сертификату/site.pem root@address2:~/
rsync -avz -e ssh /путь/к/сертификату/site.key root@address2:~/

Дальше нам останется выполнить еще несколько настроек на этом сервере, но сначала нужно развернуть все на другом. Я предполагаю, что сервер уже настроен, веб-сервер и система управления базами данных установлены и работают. Подключаемся к нему по SSH:

ssh root@address2

Сначала файлы. Утилита rsync сохранит владельца файла из предыдущего сервера или сделает им root. А нам нужно чтобы файлы сайта принадлежали тому пользователю, от имени которого запущен Nginx и php-fpm или Apache. Посмотрите группу и пользователя, от которых они запущены:

Затем поменяйте текущего пользователя и группу всех файлов сайта на нужные с помощью утилиты chown:

chown -R losst:losst /путь/к/файлам/сайта/

Флаг -R включает рекурсивную обработку всех файлов, первый параметр - пользователь, второй, через двоеточие - группа. Дальше мы готовы перейти к базе данных. Сначала нужно создать нашу базу и создать пользователя, с помощью которого WordPress будет к ней подключаться. Для этого войдите в интерфейс mysql:

> CREATE DATABASE имя_базы_данных;
> CREATE USER "имя_пользователя"@"%" IDENTIFIED BY "пароль";
> GRANT ALL PRIVILEGES ON "имя_базы_данных" . * TO "имя_пользователя"@"localhost";
> GRANT ALL PRIVILEGES ON "имя_базы_данных" . * TO "имя_пользователя"@"address1";
> FLUSH PRIVILEGES;

С помощью этих команд мы создаем новую базу, затем пользователя, даем ему права делать с ней все что он захочет, если он подключен с localhost или сервера с ip address1, а последней командой обновляем таблицу привилегий. Нам осталось только загрузить информацию в базу:

mysql -u root имя_базы_данных < dump.sql

В принципе, для создания базы, пользователя и ее разворачивания можно было использовать Phpmyadmin, но в консоли все проще. Дальше нам осталось отредактировать файл wp-config и указать новые параметры доступа к базе:

vi /путь/к/файлам/сайта/wp-config.php

define("DB_NAME", "имя_базы_данных");
/** MySQL database username */
define("DB_USER", "имя_пользователя");
/** MySQL database password */
define("DB_PASSWORD", пароль");
/** MySQL hostname */
define("DB_HOST", "localhost");

Если хотите использовать HTTPS, то укажите путь к переданным сертификатам в конфигурации Nginx или Apache. Вы уже знаете как перенести wordpress, осталось только протестировать. Теперь возвращаемся на ваш локальный компьютер и добавляем в файл /etc/hosts псевдоним вашего домена, который будет указывать на новый адрес. В Windows тоже есть этот файл, но только находится он по другому адресу:

address2 ваш_домен.ru

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

Доменная зона обновится не мгновенно, на это потребуется довольно много времени, до нескольких дней. Все это время некоторые пользователи будут обращаться к старому серверу чтобы он выдавал новые страницы нужно подключить сюда базу данных. Помните, мы разрешили подключаться к нашей базе от этого сервера, теперь просто укажите на старом сервере address1 в wp-config.php данные доступа и адрес сервера address2 вместо localhost. Готово. Теперь ваш сайт перенесен. Осталось дождаться полного обновления доменной зоны и можно выключать первый сервер. Не забудьте обновить SSL сертификаты, если их использовали.

Сегодня я расскажу о переносе сайта на WordPress с хостинга на хостинг или c хостинга на денвер, а так же на новый домен или в другую папку.
Содержание статьи:

Почему возникает проблема переноса WordPress сайта

Рано или поздно каждому из нас приходится столкнуться с переездом, для этого существует ряд причин. Самая распространенная из них – недовольства хостингом, когда терпеть уже нет сил, начинаешь думать о смене хостинг-провайдера. Хотя в этом случае проще оставить заявку в техподдержку на перенос вашего сайта (любой приличный хостинг предоставляет такую услугу бесплатно). Мне приходилось менять хостинг сотню раз, пока однажды, наконец, не повезло, теперь я пользуюсь хостингом и вам советую.

Причинной смены домена может стать попадание сайта под фильтр или в бан поисковых систем, тогда придется выбрать другой домен и начать продвижение с начала.

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

Перенос WordPress на другой хостинг 1. Скачиваем файлы сайта и базу данных со старого хостинга

Способ №1:

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

Чтобы попасть в эту папку, можно зайти по FTP (я использую программы Total Commander или File Zilla) или через файловый менеджер хостинга (этот способ удобнее, как мне кажется). Скачайте полученные архивы к себе на компьютер. Распакуйте базу данных.

Если по какой-то причине вы не смогли сделать бэкапы, существует второй способ:

Далее зайдите в раздел управления базами данных вашего хостинга, выберите phpMyAdmin. В колонке слева выберите название вашей базы данных из списка. Перейдите на вкладку Экспорт (Export) и щелкните Ок(Go). Сохраните сгенерированный файл.

Итак, дамп БД в виде файла с расширением.sql и архив со всеми файлами блога находятся на нашем компьютере и готовы к переносу на другой хостинг.

2. Перенос данных с компьютера на новый хостинг

В разделе «базы данных» нового хостинга добавьте нового пользователя БД и новую БД, придумайте ей пароль и запомните его. У меня это выглядит так:

Внимание! Если вы так же меняете доменное имя, то сейчас необходимо выполнить пункт « », затем вернитесь и продолжайте по порядку.

Откройте phpMyAdmin, найдите в списке слева вашу базу данных, перейдите на вкладку Импорт (Import). Закачайте ранее скачанный на компьютер дамп базы данных с разрешением.sql и нажмите ОК (Go).

Теперь залейте архив с файлами на ftp и разархивируйте его. Следите, чтобы в итоге файлы оказались в правильной папке, на моем хостинге это папка public_html, так же она может называться httpdocs, www или иначе, в зависимости от хостинга. Проверьте, чтобы эта папка была пустой, прежде чем распаковывать в нее архив.

3.Настройка соединения с базой и установка прав

Найдите в корне сайта файл wp-config.php. Поменяйте в нем данные подключения к базе данных на новые:

/** Имя базы данных для WordPress */ define("DB_NAME", "имя_вашей_базы_данных"); /** MySQL имя пользователя */ define("DB_USER", "имя_пользователя_базы_данных"); /** MySQL пароль базы данных */ define("DB_PASSWORD", "пароль_к_базе_данных");

Установите права (атрибуты) 777 для папки wp-content/uploads и всех вложенных папок. Это делается по ftp или в файловом менеджере:

Привязка вашего домена к новому хостингу

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

  • Узнайте у нового хостера его DNS сервера. Обычно они написаны в письме, отправленном вам на почту при регистрации хостинга.
  • Зайдите в личный кабинет своего регистратора доменов — сайт, где вы покупали домен. Я пользуюсь 2domains.ru и расскажу, как это делается там. Найдите раздел «Управление DNS-серверами» и измените DNS-сервера на новые:

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

Если вы не переезжаете на новый домен, для вас урок окончен. Если сайт не заработал, посмотрите .

Перенос WordPress на другой домен, папку

Если помимо хостинга, вам нужно перенести сайт на другой домен, придется столкнуться с некоторыми сложностями. В отличие от большинства CMS, в вордпрессе все пути прописаны абсолютными ссылками (это неприятный минус системы) и нам предстоит бороться с ними вручную. Давайте по порядку:

1. Работа с базой данных

Когда вы скачали дамп базы данных со старого хостинга, надо открыть ее в редакторе (я пользуюсь Dreamweaver) и заменить все упоминания о старом домене на новые:

Есть еще один способ: когда вы импортируете базу данных, зайдите на вкладку SQL совершите три запроса:

UPDATE wp_options SET option_value = REPLACE (option_value, "https://old_domain.ru", "https://new_domain.ru") WHERE option_name = "home" OR option_name = "siteurl";

UPDATE wp_posts SET guid = REPLACE (guid, "https://old_domain.ru", "https://new_domain.ru");

UPDATE wp_posts SET post_content = REPLACE (post_content, "https://old_domain.ru","https://new_domain.ru");

2. Изменения в.htacces и robots.txt

Найдите такие файлы в корневом каталоге сайта, найдите в них упоминания имени вашего старого домена и замените на новое.

3. Изменения в файлах сайта

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

Можно распаковать архив с файлами вашего сайта и выполнить поиск по всем этим файлам на наличие в них старого домена. Аналогично работе с базой, смените старые ссылки на новые. Ура, с переносом wordpress на другой домен покончено.

Перенос сайта в другую папку

Если вам нужно перенести блог в другую папку (например, domain.ru/blog), внесите следующие изменения в.htaccess (изменения выделены жирным):

# BEGIN WordPress
RewriteEngine On
RewriteBase /blog /
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog /index.php [L]
# END WordPress

Возможные ошибки, связанные с переносом WordPress блога

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

  • Error establishing a database connection. Такая ошибка случается, если неверно введены данные вфайле wp-config.php.
  • Открылась страница с установкой WordPress. Подобная ситуация могла возникнуть из-за ошибки импорта базы данных. Попробуйте удалить все таблицы базы и заново импортировать дамп.
  • Вы видите страницу вашего хостинг-провайдера с приветствием. Причиной может стать то, что вы не очистили папку public_html (httpdocs), прежде чем распаковать в нее архив. Удалите файл index.html.
  • Forbidden. You don"t have permission to access / on this server. Возможно, вы залили файлы сайта в неправильную папку.
  • Перенос сайта WordPress на другой хостинг задача, которая редко встает на пути. Да и если к этому прибавить, что большинство служб технической поддержки хостингов делают перенос сайта бесплатно, то вы вообще можете не столкнуться с ней. Но не зарекайтесь. Как показывает моя практика, даже техслужбе бывает, нужна ваша помощь на отдельных шагах переноса, да и завершить перенос лучше, чем вы, никто не сможет.

    Шаги переноса сайта WordPress

    Для получения удачного результата условно разобьем перенос сайта WordPress на несколько логичных шагов.

    • Сделать копию сайта;
    • Сделать дамп содержимого базы данных сайта;
    • Прикрепить домен к аккаунту на новом хостинге;
    • Создать новую базу данных на новом хостинге;
    • Импортировать базу данных;
    • Перенести каталог сайта на новый хостинг;
    • Исправить файл wp-config.php;
    • Поменять сервера доменных имен сайта (DNS);
    • Проверить новый сайт и удалить (отключить) аккаунт на старом хостинге.
    Сделать копию сайта

    Для начала сделаем копию сайта. Сделать это можно в панели управления хостингом (DirectAdmin, ISP панели, и т.п.) через инструмент резервного копирования. Но лучше процесс контролировать и поэтому, сделайте копию сайта вручную с помощью FTP клиента, с которым вы работаете. Рекомендую программы FileZilla или WinSCP .

    Через FTP клиент перекачайте все папки и файлы вашего сайта к себе на компьютер в отдельную папку. Нужны все папки и фалы сайта, которые находятся в корневом каталоге сайта, куда устанавливали WordPress. (в корневом каталоге большинство папок и файлов должно начинаться с wp-). Скорее всего это папка public_html или httpdocs . Скачивайте всё, что есть в корневом каталоге и только из него.

    Сделать дамп содержимого базы данных сайта

    Перенос сайта WordPress на другой хостинг требует копии (дамп) базы данных сайта. Сделать ее можно в phpMyAdmin хостинга. Войти в него можно только из панели управления хостингом.

    Для входа в phpMyAdmin понадобятся учетные данные базы данных сайта: Имя базы данных, Имя пользователя БД, Пароль доступа. Они должны быть у вас, где нибудь записаны с момента . Если нет, не беда. Их можно легко восстановить. Для этого откройте файл wp-config.php через FTP клиент или в файловом менеджере панели управления хостингом и найдите в нем следующие строки:

    Define("DB_NAME", "Имя базы данных для WordPress "); define("DB_USER", "Имя пользователя MySQL "); define("DB_PASSWORD", "Пароль к базе данных MySQL ");

    Учетные данные базы данных восстановлены, переходим в phpMyAdmin в панели управления хостингом.

    Экспорт базы данных

    С дампом (копией) базы данных следующая история. Сделать копию базы данных можно многими способами (Программа mysqldump , скрипт Sypex Dumper Lite, скрипт Staggered MySQL Dump Importer, Программа Navicat) . Но так как мы вошли в скрипт phpMyAdmin, то и будем делать копию БД при помощи инструментов php MyAdmin. Этот вариант работает, только для сайтов не гигантского объема.

    В phpMeAdmin, слева выберите нужную базу данных.

    Вверху жмем вкладку «Экспорт»

    В открывшемся окне настроим параметры экспорта:

    • Выбираем все таблицы БД;
    • Ставим галочку «SQL» формат файла БД;
    • В чекбоксе «Упаковать» можно оставить не сжимать или сжать БД. Если предполагаемый объем БД менее 2 Мб можно не сжимать. Нужно это для последующего импорта БД. По умолчанию, максимальный размер файла для импорта 2,048МБ.
    • Нажать кнопку «ОК».

    Если базу данных не сжимать, в следующем окне видим дамп своей БД.

    Это текстовой файл. Выделяем содержимое файла быстрыми клавишами Ctrl+A и копируем Ctrl+C . Открываем «любимый» текстовой редактор (например, Notepad++), вставляем скопированный файл и сохраняем файл БД в формате sql (Structured Query Language). Перед сохранением проверьте кодировку файла (вкладка «Кодировка» в редакторе). Файл БД должен быть в кодировке utf-8 без BOM. Всё, дамп содержимого базы данных сделан.

    Не знаю по какой причине я в 2013 году привёл такой сложный вариант Экспорта базы данных. Копия делается в три шага:

    • Откройте базу данных в phpmyadmin;
    • Не выделяя чеки у таблиц нажмите кнопку «Экспорт»;
    • Выберете сжатие базы данных (если нужно);
    • Внизу нажмите кнопку действий (вперед или ОК).
    • С картинками читать .

    Переходим к работе с новым хостингом.

    Прикрепить домен к аккаунту на новом хостинге

    На новом хостинге пройдите все шаги по покупке хостинга от регистрации до получения учетных данных для FTP соединения и входа в панель управления хостингом. (подробно читать )

    Импортировать базу данных

    Непосредственный перенос сайта WordPress на другой хостинг начните с импорта базы данных. Для этого на новом хостинге создайте новую базу данных. , как это сделать:

    • Войдите в панель управления хостингом;
    • Войдите в MySQL и создаете базу данных с Именем базы, Именем пользователя и Паролем доступа.
    • Далее из панели управления хостингом войдите в phpMyAdmin.

    В phpMyAdmin нового хостинга нужно перенести (Импорт) содержимое своей базы данных, скаченной с старого хостинга в формате sql. Перед Импортом, настраиваем его параметры:

    Проверяем название БД, выставленную кодировку utf-8 и формат SQL. Нажимаем «OK». В результате переноса вы увидите все таблицы своей БД.

    Перенос сайта WordPress на другой хостинг по FTP
    • Опять открываем FTP клиент. Только теперь соединяемся с новым хостингом.
    • Переносим все ранее скачанные папки и файлы своего сайта в корневой каталог нового сайта на новом хостинге. Информацию куда устанавливать сайт найдете на новом хостинге.
    • Сайт перенесен. Нужен файл wp-config.php для редактирования.
    Исправить файл wp-config.php

    Для удобства редактирования файла wp-config.php скачайте его и откройте в текстовом редакторе (например Notepad++).

    Важно! Не редактируйте файл config.php в блокноте Windows и в редакторах Word.

    В ниже следующих строках вставьте данные новой базы данных MySQL, сделанной вами на новом хостинге.

    Define("DB_NAME", "Имя новой базы данных для WordPress "); define("DB_USER", "Имя пользователя MySQL "); define("DB_PASSWORD", "Пароль к новой базе данных MySQL "); define("DB_HOST", "localhost") Это имя сервера MySQL .Может быть отличен от localchost;

    Файл сохраняете, и закачивайте обратно на сайт по FTP с условием перезаписи.

    В принципе сайт перенесен. Но если вы откроете его в браузере, то он откроется на старом хостинге, так как не сменены имена DNS серверов (сервера доменных имен). Чтобы завершить перенос сайта WordPress на другой хостинг, нужно поменять DNS сервера к которым прикреплен ваш домен.

    Поменять сервера доменных имен (DNS) сайта

    Здесь два принципиальных варианта смены серверов доменных имен. Все зависит, кто управляет доменным именем вашего сайта.

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

    Входите в Панель управления хостингом;

    Здесь ищите DNS записи доменных имен. У каждой панели это в своем месте. Найти не сложно, выглядит это так.

    Интересует «Запись» «Тип» NS. Их должно быть, как минимум две. Если в записях их нет, обратитесь в тех службу хостинга, пусть сообщат. Имена DNS серверов хостинга имеют такой вид:

    • ns1.namehost.ru;
    • ns2.namehost.ru.

    Далее «идете» к своему регистратору домена. Открываете управление доменом, далее выбираете нужный домен и пункт управление dns серверами или что-то похожее. И вместо DNS серверов старого хостинга прописываете DNS сервера нового хостинга.

    Второй вариант если доменное имя управляется регистратором. Делаете все тоже самое, как в первом варианте, только наоборот. На хостинге в управлении DNS прописываете адреса DNS серверов регистратора.

    Это два основных варианта прописки DNS серверов. Но хостинги разные и каждый хостинг рекомендует свой вариант управления доменом.

    По общепринятым меркам новые параметры DNS прописываются около 72 часов (обычно быстрее).

    Проверить новый сайт

    В течение суток периодически проверяйте, поменялись ли DNS сервера сайта. Для этого есть масса on-line инструментов (например http://www.cy-pr.com/tools/dns/ ), которые расскажут все о вашем сайте, в том числе всю информацию о DNS серверах сайта. Вот пример, как это выглядит.

    Смена DNS серверов происходит от 3 часов до суток. Если адреса DNS поменялись и сайт работает на новом хостинге, можно удалять свой домен со старого хостинга. Сделать это нужно обязательно. На этом, про перенос сайта WordPress на другой хостинг все!

    Ошибки переноса и их исправление

    Разберем некоторые основные ошибки возникающие при переносе сайта WordPress.

    Возможные ошибки
    • Пропали статьи и/или категории сайта,
    • Вместо текста крякозябры или знаки вопроса,
    • Вместо сайта надпись «Невозможно соединиться с базой, ошибка в строке 2»;
    • Белый экран, вместо сайта;
    • Ошибка на сервере Apache, порт 80.
    Исправления ошибок
    • Проверьте кодировку файла БД (utf-8 без BOM),
    • Проверьте кодировку таблиц перенесенной БД (utf-8-general-ci),
    • Проверьте данные внесенные в файл wp-config.php. особо обратите внимание на название сервера MySQL. На новом хостинге он может отличаться от localhost;
    • Еще не переключились .
    Фатальная ошибка

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

    Сейчас, поддерживая около 17% сетевого контента, WordPress стремительно становится наиболее предпочитаемой CMS для среднестатистического пользователя. Но что делать с сайтами, созданными с устаревшей CMS, или без нее вообще? Означает ли переход на WordPress то, что вам придется начать все сначала и потерять уйму времени, энергии и денег, которые вы вложили в этот веб-сайт? Нет!

    Перенос сайта (включая дизайн) на WordPress гораздо проще, чем вы думаете. В этом уроке мы покажем процесс переноса на примере нашего проекта. Мы также рассмотрим некоторые вопросы, с которыми вы возможно столкнётесь, и найдём на них ответы.

    Подробнее, об этом уроке

    Перед тем, как мы примемся за работу, давайте обозначим некоторые моменты. Во-первых, этот гайд был написан для новичков и будет наиболее полезен для простых веб-сайтов. Некоторые из вас, возможно, столкнутся с продвинутыми аспектами миграции на WordPress, но эта инструкция в этом вряд ли чем-то поможет. Если зависли на каком-нибудь моменте связанном с более продвинутым переносом, то опишите свою проблему в комментариях.

    Цели

    Данный урок призван помочь вам со следующим:

    • планирование эффективного перехода на WordPress;
    • проведение через технические моменты, связанные с переносом;
    • решение наиболее частых сложностей, связанных с переносом.
    Предположения

    Я надеюсь, что вы имеете начальное предоставление о работе с WordPress. Опыт работы с WordPress может быть полезным, но не является необходимым. Я также предполагаю, что у вас есть веб-сайт и дизайн, который вы хотите перенести на wordpress.

    Первые шаги
  • Оцените веб-сайт . Внимательно просмотрите страницы на вашем существующем веб-сайте и определите тип контента (стандартные страницы, фотогалереи, страницы ресурсов и т.д.), обратите внимание на любую информацию, которую можно посчитать важной.
  • Подготовьте среду . Настройте WordPress и приготовьтесь к импорту.
  • Импортируйте контент . Перенесите и организуйте ваш контент через утилиту импорта, вручную (для небольшого количества контента, когда утилиты недоступны) или через настраиваемый процесс переноса.
  • Перенесите дизайн . Встройте свой существующий дизайн в предустановленную тему WordPress.
  • Проверьте веб-сайт и начинайте . Внимательно проверьте результат импорта, подправьте, где необходимо, установите редиректы URL и начинайте!
  • С этим планом в голове давайте начнём прорабатывать каждый шаг подробно.

    Начните с плана

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

    Импортируемый контент
    • как много контента необходимо импортировать (количество страниц, изображений)
    • можно ли ваш контент перенести вручную, или вам необходима утилита
    • если вам необходима утилита, то существует ли она
    • может ли контент определен в обычные «посты» или «страницы», или необходима настройка
    • должен ли дополнительный контент располагаться на определенных страницах
    • изменится ли структура URL. Если да, то необходимо ли перенаправление со старых URL-адресов
    Существующая функциональность
    • включает ли веб-сайт сторонние сервисы (данные и т. д.)
    • необходимо ли перенести формы (контактные формы, формы для заявлений и т. д.)
    • есть ли ограничения контента (например, только для зарегистрированных пользователей)
    • продает ли веб-сайт продукцию (виртуальную или реальную)
    • необходимо ли перенести отдельные администраторские настройки
    Рабочий пример

    Мой брат решил пожертвовать свой сайт для примера: его проект продает постеры и открытки компании вегетарианской еды. Он построил сайт на простом HTML, с вставками PHP базового уровня для шапки и нижнего колонтитула. Ниже представлен скринкаст, где я изменяю этот сайт, чтобы вы поняли процесс работы. Наслаждайтесь!

    Установка WordPress

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

    После того, как wordpress настроен и запущен, вы можете начинать работу!

    Для нашего примера, мы установили wordpress на тот же хостинг, в директорию /wp для продолжения процесса переноса.

    Настройки и плагины

    С установленным wordpress нам остается сделать минимальные поправки:

    • Обновите постоянные ссылки . Кликните «Настройки->Постоянные ссылки» , чтобы внести изменения. В большинстве случаев я просто изменяю постоянные ссылки на «postname» .
    • Обновите пользователей . Я создал аккаунт андимистраторского уровня для себя и для любого администратора или редактора, что необходимы для клиентов и партнеров. Я также убираю дефолтное имя пользователя «admin» , если оно существует.

    В зависимости от целей проекта, нам может понадобится переустановить плагины. Здесь описаны основные категории плагинов.

    • Управление формами . Перенос форм так, как они есть может превратить все в хаос. Простое создание форм с нуля гораздо проще. Моим фаворитом является gravity forms . Другие варианты — это formidable и contact form 7 .
    • Управление SEO . SEO — очень деликатное явление. Смысл моей работы заключается в создании контента для людей, а не для поисковых систем. Поэтому, существует адекватный подход к SEO, поддерживаемый экосистемой wordpress. И если на вашем старом сайте есть пользовательские мета-описания, необходимо их перенести без потерь. Для этого поможет wordpress SEO .
    • Множество языков . Если ваш сайт поддерживает несколько языков, у WordPress есть решение. Мой выбор — плагин WPML . Еще одним решением может стать qTranslate .
    • Безопасность . Безопасность на WordPress — это хорошо знакомая мне тема. Возрастающая популярность WordPress сделало его неплохой целью для различного рода атак. Сам WordPress редко является проблемой, в основном она кроется в плохо охраняемой хостинговой среде и устаревших или плохо разработанных плагинах. Для большинства своих проектов я использую регулируемые хостинги WordPress, которые предлагают неплохие стандарты безопасности. В ряде опций можно назвать WPEngine , ZippyKid , Pagely и Synthesis . В добавок в регулируемому хостингу обратите внимание на плагины безопасности, такие как Better WP Security или WordFence.
    • Бэкапы . Если вы выбрали управляемый хостинг, то бэкапы обычно включены. Если вы сами делаете бэкап или вы хотите дополнительный слой защиты для данных, то есть отличные варианты, как например, VaultPress, CodeGuard, BackupBuddy, BackWPup .
    Импорт контента

    Итак, мы запустили и настроили WordPress, теперь самое время перенести весь ваш контент.

    Если у вашего старого сайта есть CMS, вам может быть доступна утилита. Начните искать скрип для переноса контента в Кодексе. Ели есть совпадение — здорово! Следуйте инструкциям и принимайтесь за работу. Если всё хорошо, то вы перенесёте свой сайт без каких-либо проблем.

    Если вашей CMS нет в списке или у вас нет CMS и у вас менее 100 страниц, тогда пригодится ручной перенос. Копируйте и переносите контент, записывая старые URL.

    Если у вас пользовательские CMS или база данных записей без инструмента переноса, а также большой объем контента, вы можете привлечь специалиста для переноса содержимого перед тем, как начать. Чем больше объем контента, тем выше вероятность человеческой ошибки и тем важнее автоматизация процесса.

    В нашем случае, мы перенесли контент вручную и заменили существующую навигацию меню WordPress. Вы сможете посмотреть процесс в этом скринкасте.

    Перенести дизайн

    Теперь настало время перенести на WordPress наш дизайн. Если вы хотите обновить внешний вид сайта, тогда стоит приглядеться к множеству отличный тем WordPress в официальном хранилище и сторонних магазинах, например ThemeForest и Creative Market. В нашем случае, представим, что вы полностью довольны дизайном.

    Оценка дизайна

    Оцените исходный код будущего дизайна как можно лучше, перед тем как сражаться с переносом. Если код основан на таблице или более сложный, чем тот, с которым вам комфортно работать, то результат может не стоить затраченных усилий. Когда все возможно, не все практично.

    Работа с исходным кодом

    Следуя своему опыту, могу сказать, что наиболее простой способ переноса дизайна — это работа с исходным кодом в браузере. Хотя доступ в хостинговой среде может быть полезно (особенно при работе с изображениями и скачиваемыми файлами), однако способы построения веб-сайтов настолько различаются, что вам придется переделывать оригинальную архитектуру, чтобы добиться чего-либо полезного.

    Прямая работа с исходным кодом сэкономит ваше время, покажет скрытые полезные функции и предоставит вам все, что нужно. Я пользуюсь браузером Google Chrome.

    Создание пользовательской темы

    Если вы в этом новичок, просмотрите информацию об использовании тем в Кодексе. Для процесса переноса вы можете создать новую тему WordPress с нуля, или изменить уже существующую тему, чтобы она соответствовала вашим вкусам. Я советую второй способ.

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

    Скачайте копию (zip) шаблона для переноса или продолжайте со своей темой, на выбор.

    Стиль страницы.

    Нашим первым шагом будет перенос стилей со старого сайта. В большинстве случаев это не сложнее, чем поиск в исходном коде соответствий на.css:

  • Откройте style.css.
  • Замените детали в теме (имя, URL, описание и т. д.) на ваши собственные.
  • Вставьте стили со старого сайта.
  • Заметка по поводу картинок

    Если вы переносите стиль страницы, найдите и обновите любую информацию об изображениях. В общем, мне нравится держать все изображения в папке /images/ в директории темы. Чаще всего необходимо менять расположение изображений в оригинальной CSS, и я удостоверился, что поменял все ссылки и шаблоны соответственно.

    Заголовок

    Следующим шагом будет создание заголовка для нашей новой темы. Нашей целью будет совместить структуру текущего кода с шаблонами WordPress. Вот что нам стоит сделать:

    • Скопируйте HTML структуру старого сайта.
    • Замените статическое меню на меню, поддерживаемое WordPress.
    • Используйте тэг WordPress title и оставьте wp_head на месте.
    • Вставьте другие важные теги из старого заголовка.

    Давайте взглянем на код!

    Оригинальный HTML Vegan Food Pyramid posters, postcards and wallpapers Vegan Food Pyramid Подогнанный заголовок (header.php) try{Typekit.load();}catch(e){} Объяснение

    Одной из проблем переноса является определение того, стоит ли улучшать код по мере продвижения. У нашего проекта есть разделы, которые можно улучшить, но мы решили оставить все как есть. Большинство из вас будет работать с переносом дизайна, который не был предназначен для улучшений.

    Если время и возможности позволяют, я советую улучшить код . Или же свыкнитесь с мыслью, что с сайтом на WordPress внести изменения будет гораздо проще.

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

    • Тип документа . Убедитесь, что вы перенесли тот же самый тип. В этом случае оригинальный html уже имеет доктайп HTML5 (относительно редкий случай на старых сайтах). Используя современный доктайп в коде, написанном для старого кода вы можете испортить шаблон.
    • Мета-теги . Я обычно переношу большую часть метатегов так, как они и есть, заменяя их в WordPress. Исключение в нашем случае составляет ссылка на файл стилей, вставляемая автоматически через wp_enqueue_style в файле functions.php .
    • Скрипты . Скрипты могут быть запутанными. Если скрипт находится на каждой странице (например, трекинговый скрипт, или скрипт шрифта), тогда необходимо разместить его в файле заголовка или нижнего колонтитула. Если необходимо, чтобы он появлялся лишь в отдельных местах, то подойдут теги условий. Лучше всего добавьте все скрипты в заголовок через wp_enqueue_script . Если вы готовы принять вызов, то я советую вам этот способ.
    • wp_head . Оставьте внизу тега в файле header.php . WordPress также использует wp_head, чтобы расставить скрипты и файлы стилей, используемые в теме и в плагинах, что вы установили. Без wp_head большинство плагинов просто не будут работать.
    • Body_class . Обратите внимание на использование тега . WordPress использует это, чтобы предоставить ряд полезных классов к тегу пока вы присматриваете страницу. В нашем примере они не используются. Ваши должны иметь уникальные ID или классы на каждой странице, в этом случае вам нужно создать произвольные функции используя теги условий, чтобы добавить соответствующие классы для каждой страницы.
    • Меню WordPress . Переход на меню WordPress является одним им самых сложных задач в переносе. Он будет у нас довольно прямолинейный. У нас есть простое меню, которые использует класс active (сгенерированый через PHP), чтобы показать, какую страницу посещает пользователь. Функция wp_nav_menu очень гибкая и предлагает встроенную функциональность, чтобы обрабатывать текущее состояние элемента в меню. Я обновил условия в файле стилей на active и изменил их, чтобы они использовали эквивалент, сгенерированный wp_nav_menu , который является current-menu-item . Смотрите скринкаст о переносе контента, чтобы понять, как настраивать меню на нашем примере.

    Вот и готова оболочка. Давайте приступил к следующему шагу.

    Подвал

    Перенос подвала обычно обходится без проблем. Как и в случае с шапкой, нам необходимо объединить части оригинального исходного кода. Давайте займемся этим.

    Оригинальный HTML

    © 2013 VeganFoodPyramid.com

    Подогнанный футер (footer.php)

    © VeganFoodPyramid.com

    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src="" + gaJsHost + "google-analytics.com/ga.js" type="text/javascript"%3E%3C/script%3E")); try { var pageTracker = _gat._getTracker("UA-6992755-1"); pageTracker._trackPageview(); } catch(err) {} Объяснение

    Некоторые подвалы сложно перенести (например, со сложными меню и виджетами), но в большинстве случаев это довольно просто. В нашем случае мы объединили HTML с нашим шаблоном подвала, оставляя обращение wp_footer . Мы также изменили ссылку на дату, чтобы использовать PHP и быть уверенными, что он обновляется каждый год.

    Домашняя страница

    Одна из проблем переноса — это то, что существует куча способов выполнить эту работу. Хорошим примером может служить домашняя страница, потому что она обычно наиболее отличается от остальной части сайта. Самый простой способ обычно самый верный. Я решил разместить весь контент с домашней страницы прямо в шаблоне. Изменять ее придется редко и это всегда можно будет сделать, изменяя шаблон.

    Давайте посмотрим на код без заголовка и футера, который мы уже перенесли.

    Оригинальный HTML Poster $30 each Buy Postcards $50 for 50

    Includes free shipping worldwide

    Buy Подогнанная главная страница /images/Vegan-Food-Pyramid-New.jpg">