Як перенести одиночний сайт у мережу Wordpress Multisite, зберігши домен, Денис Болвінов

сайт

Необхідність об'єднання кількох сайтів в одну мультисайтову інсталяцію виникла у зв'язку з бажанням заощадити час на оновленні тем, плагінів та стеженні за працездатністю кількох сайтів. Крім того, такий спосіб організації роботи дає можливість в один клік створювати новий сайт з набором встановлених тем і плагінів набудь-якому піддомені з усіхвстановлених у вашій мережі доменів.

Відразу поясню: я використаю Вордпрес мультисайт на піддоменах, а не в папках. Тобто основний сайт у мене vseedino.ru, а сайт на піддомі, наприклад, notes.vseedino.ru.

І друге - ця інструкція тільки для тих, хто переносить сайт у мережу, не змінюючи його домен!

Як з'ясувалося, ви можете легко прив'язати потрібний вам домен до будь-якого сайту всередині мережі. Наприклад, мій сайт bolvinov.ru також знаходиться усередині мультисайтової мережі vseedino.ru.

До того, як ця ідея з'єднання сайтів у мережу мене відвідала, я пробував користуватися сервісомWP Remote, до адмінки якого можна безкоштовно внести свої сайти та стежити там за їх оновленням. Але таке віддалене оновлення часто викликало глюки, сайт міг навіть впасти, тому процес оновлення завжди супроводжувався перевіркою кожного сайту, яка забирала купу часу.

Про те, як включити у своєму WordPress режим Multisite, я писати не буду, для цього в інтернеті повно інструкцій. Перейду одразу до справи.

Що нам потрібно для початку

  1. Відповідний хостинг - швидкий і місткий. Я зараз використовую та рекомендую Lite-host
  2. Повністю функціональна інсталяція WordPress Multisite
  3. CPanel на хостингу. Чому саме CPanel? Спроби провернути прив'язкустороннього домену в Direct Admin у мене зазнали невдачі, т.к. там не можна вказати для домену довільну папку. А в CPanel можна. Як справи з цією опцією інших панелях управління – не знаю!
  4. Посидючість і уважність.

Початок один для обох способів - це тотальний Бекап всього! Робимо бекап бази і файлів мережі, а також бази і файлів одиночного сайту, що переноситься.

1 спосіб: Export / Import плагіном за 6 кроків

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

  1. У стандартну комплектацію WordPress входить плагін експорту:Інструменти - Експорт. Заходимо туди і експортуємо «Все» зі свого самотнього сайту до XML-файлу
  2. Створюємо у мережі сайтів новий сайт
  3. Натискаємо «Змінити» у списку створених сайтів, потрапляючи при цьому у налаштування сайту всередині мережі. Змінюємо піддомен (наприклад, domen.site.ru) на потрібний нам домен (domen.ru)
  4. Переходимо до CPanel. Переходимо в «Додаткові домени» і там у потрібного вам домену одиночного сайту (а він там має вже бути, якщо ні, то додайте) міняємо папку на кореневу папку вашої мережі (наприклад, pulbic_html/site.ru).
  5. Переходимо в адмінку сайту в мережі,Інструменти - Імпорт. Імпортуємо вивантажений у п.1 xml-файл.
  6. Ура! Перевіряємо, чи все вийшло!

2 спосіб: 9 «простих» кроків перенесення сайту в WordPress multisite без плагіна

Цей спосіб підходить для великих сайтів і тих сайтів, інформацію з яких важко експортувати. Адже в якихось плагінах та шаблонах ця можливість є, у якихось немає.

  1. Створюємо новий сайт в мережі (також, встановимо в мережі всі потрібні теми та плагіни, які стоять у вас на одиночному сайті, щоб уникнути глюків).Заходимо в список ваших сайтів, наводимо мишу на створений сайт і дивимося на посилання його унікальний ID в нашій мережі.
  2. Заходимо до myPhpAdmin (наприклад, через CPanel), вибираємо базу даних нашого одиночного сайту. Тепер поставимо галочки на потрібних таблицях бази даних сайту. А потрібні нам всі таблиці, крім wp_users і wp_usermeta. Також, швидше за все, не потрібні таблиці колись встановлених і віддалених плагінів. Тепер вибираємо дію з цими виділеними таблицями «Експорт», після чого завантажується SQL файл.
  3. Відкриваємо sql-файл в Notepad++ (звичайний блокнот я не пробував, там може бути проблема з кодуванням) і замінюємо автозаміною:

а)`wp_ на`wp_XX_ - це префікси таблиць. Можливо, у вас був якийсь інший префікс, не wp_, тоді змінюємо його. Зверніть увагу на апостроф `` перед wp - потрібно робити саме таку автозаміну або нічого не вийде. "XX" потрібно замінити на ID сайту в мережі, який ми з'ясували в п.1

в) знаходимо рядок «wp_user_roles » і змінюємо його на «wp_XX_user_roles »

Зберігаємо SQL - файл.

  1. Тепер йдемо в myPhpAdmin нашої мережі, шукаємо там базу мережі, шукаємо у базі всі таблиці з префіксом wp_XX_ (автоматично створені для нового сайту), відзначаємо їх галочкою (можна виділити верхню, затиснути Shift, виділити нижню). Видаляємо всі ці таблиці.
  2. Йдемо у вкладку «Імпорт» і імпортуємо до бази зміненого нами п.3 sql-файл. Таблички займають своє місце у базі мережі.
  3. Тепер скопіюємо в папку мережі "wp-content/uploads/sites/XX" всі файли з папки "wp-content/uploads" одного сайту. XX, повторюся, це ID потрібного сайту у мережі.
  4. Переходимо в адмінку нашої мережі, в керування сайтами. На потрібному сайті натискаємо «Змінити» та в налаштуваннях змінюємо піддомен (наприклад,domen.site.ru) на потрібний нам домен (domen.ru).
  5. Переходимо до CPanel. Переходимо в «Додаткові домени» і там у потрібного вам домену одиночного сайту (а він там має вже бути, якщо ні, то додайте) міняємо папку на кореневу папку вашої мережі (наприклад, pulbic_html/site.ru).
  6. Все, сайт перенесено! Тепер активуємо на сайті потрібну тему і налаштуємо всі плагіни, т.к. не завжди це відбувається автоматично.

Якщо раптом не видно картинки, подивіться в адмінці в медіафайлах їх URL. Іноді треба зайти в налаштування мережі -> налаштування сайту -> вкладка "Налаштування" . Та там шукати шлях для uploads. У полі шляху не повинно бути нічого, якщо там щось написано, воно буде додаватися до шляху «wp-content/uploads/sites/XX».

Ура! Тепер все має працювати! Але якщо не працює, не засмучуйтеся, можливо, що це ще не злий рок, а ви просто щось пропустили в цих 9 «простих» кроках 🙂