Декілька сайтів (блогів) на одному движку Wordpress і з однієї БД

Крім того, ви отримаєте хорошу економію за часом — оновлювати плагіни можна буде в одному місці, хоча не впевнений щодо подальшої їхньої активації окремо. Насправді, процес досить простий. Використовується трюк, як і в минулій статті, тому можете прочитати її для загального розвитку.
Насамперед необхідноналаштувати домени блогів щоб вони посилалися в один і той же каталог. Увага, я розповідаю, як усе працює у мого хостера, тому не можу на 100% гарантувати такий же алгоритм у вас. Якщо виникнуть питання, найпростіше звернутися до їхньої служби підтримки (власне, я так і чинив). Так ось, припустимо, є 3 сайти - site1.ru, site2.ru, site3.ru. При створенні їх на хостингу, швидше за все, для кожного буде виділено окрему папку на FTP. Суть методу – направити всі домени в одну (головну директорію). Для цього використовуються аліаси. В адмінці hqhost, наприклад, це виглядає приблизно так:
Длякожного сайту (домена) редагуємо аліаси - для другорядних (site2.ru, site3.ru) прибираємо та додаємо їх до основного (site1.ru). Мабуть, повторюся, якщо ви мало що зрозуміли в моїх словах краще звернутися до тих. підтримку хостера, там мають допомогти:)
Отже, в результаті цієї процедури кожен сайт «дивитися» в одну директорію - головного блогу. Саме туди ми заливаємо усі вихідники WordPress, плагіни, шаблони. Після цього заходимо у файлwp-config.php, де знаходимо рядок $table_prefix = wp_; Вона визначає префікс для таблиць блогу, потрібно зробити так, щоб генерувалися різні префікси в залежності від домену. Для цього використовуємо код:
$prefix = $_SERVER["HTTP_HOST"]; $prefix = str_replace("www.", "", $prefix); $prefix = str_replace("-", "", $prefix); $prefix = str_replace(".", "", $prefix); $table_prefix = $prefix."_" ;
У результаті замість wp_ отримаємо префікс site1ru_, site2ru_ і т.п. Можете в останньому рядку додати будь-які символи, наприклад:
$table_prefix = "wp".$prefix."_" ; // Отримаємо wpsite1ru_
Тепер щоразу, коли ви заходитимете за тим чи іншим доменом, ви бачитимете той сайт (блог), який йому відповідає. Оскільки всі налаштування системи зберігаються в БД, то налаштовувати кожен проект доведеться окремо. Це стосується шаблонів — завантажуєте все в одну папку, а для блогів вибираєте різні.
RewriteCond % /robots.txt$ [NC] RewriteRule ^ /robots-%.txt [L] RewriteCond % /sitemap.xml$ [NC] RewriteRule ^ /sitemap-%.xml [L]
Ось, до речі, знайшов у мережі ще один варіант реалізації кількох сайтів на одному движку Wordpress. Там підхід дещо інший, що дозволяє кожному сайту використовувати окремий конфіг файл. А це означає, що теоретично можна під однією адмінкою об'єднати навітьсайти з різних баз даних.
Також у процесі пошуку рішення натрапив на статтю з офіційного сайту, де зібрано різні реалізації для кількох проектів — від блогохостингів до цілих блогоферм.
Довірте створення сателітів професіоналам – якісні оригінальні тексти, дизайн. Розробка проектів під ключ.
Сам у вихідні заморочився, все вийшло. На одній основі на одному двигуні. Питання виникло тільки з тим, як SAPE прикрутити, адже папка одна буде. На форумі в принципі запропонували рішення, там поміняти змінну одну, або ще порадили плагіном, поки не пробував, тому що ще рано ці майданчики в сапу додавати, але почути працююче рішення було б цікаво :)
Проблема може виникнути з плагінами, які при оновленні себе до нової версії вносять зміни до бази. Т.к. при оновленні зміни торкнуться тільки активної бази, то в інших сайтах оновлені файли плагінів не знайдуть зміни в базі. Але, думаю, таких не багато.
Lesso, з Сапою я поки що не замислювався. Як настане час, теж загляну на їхній форум у пошуках відповіді, або в тех.підтримку. Упевнений, подібні «складання» люди вже використовують. З іншого боку, потрібно бути обережним — тут один ip, і якщо продавати купи посилань, сайти швидше за все підуть у бан.
Valentin, хм, теж правильне зауваження. У такому разі потрібно буде вигадати якісь хитрощі щоб оновити БД для всіх сайтів. Хоча, в принципі, це дуже трудомістко, та й використовувати такі конструкції краще для простих проектів де мінімум функціональності. Ті самі сателіти.
хочу зробити вищеописане зі своїми піддоменами. не виходить. по-перше, у якій папці вони мають бути? наприклад, у мене основний сайт тут: root/sitecom/www, у www-весь ВП. домен тут: root/sitecom/subdomain.так треба? по-друге, при створенні піддомена в потрібній директорії або при зміні ін. доменів, щоб вони в спільну папку зверталися, таблиці в базі даних самі створюються? якщо так, то після цього під час завантаження піддомена в браузері вже має щось показуватися, мабуть дефолтова тема ВП? по-третє, яким чином я можу керувати піддоменом із загальної адмінки ВП? де там що потрібно міняти, щоб показувало потрібний піддомен?
Народ, допоможіть думаю як продати, необхідно щоб два домени використовували одну базу. Але в цій базі прописані url на пости та картинки. Відповідно для одного домену потрібно на льоту змінювати ці значення з site1.com на site2.com
@Valentin: Не впевнений. Давайте поміркуємо: ми завантажили такий плагін «нехороший». Далі що? Ми маємо його активувати. Допустимо зайшли до адмінки site1. Активували. Він вніс зміну та в адмінці з'явилися його налаштування (якщо є). Далі що? Ну, можемо, наприклад, відразу ж зайти в адмінку site2 і… знову активувати його, щоб він знову вніс свої «погані» зміни до таблиці БД.
Звідси висновок: теоретизувати добре, але експеримент покаже who is who :) Пропонуйте штучки три «нехороші» плагіни — поексперементуємо :)
Diplomat, в налаштуваннях блогу можна задавати папку з якої беруться картинки, тобто для кожного блогу окремо. Якщо я правильно зрозумів питання. Олександр, все правильно, потрібно просто для кожного сайту заходити в адмінку та оновлювати плагін – це не так складно.
із сапою питання не вирішене?
Із сапою, зізнатися, це все не пробував, а що можуть бути проблеми? Залив на фпт, прописав код у кожному із шаблонів, а сапа вже сама повинна визначати для якого сайту що робити чи ні?
Анна – для вашого випадку є спеціальне рішення, воно називається WordPress MU!! Основна відмінність цього рішення і саме в тому, що воно для піддоменів, а не для окремих доменів.
сапа вирішена вже давно - там в коді можна включити мультисайтинг і до лінкс дб буде додаватися префікс виду.
я знаю ще один спосіб який виявляється не згаданий у тій офіційній статті: wpmu з плагіном відображення субдоменів на будь-який домен http://ocaoimh.ie/wordpress-mu-domain-mapping/
Спробую, що це за така штука вийде з одним Вордпресом.
Написав у супорт хостингу, т.к. у мене є лише доступ до cPanel. Вони відповіли ось що: «Рушок розміщуєте в папці public_html, а всі доменні імена додаєте в парковані в результаті вони будуть аліасами на основний домен.» Це справді буде аналогічно тому, що описано у цій статті?
Роман, за ідеєю, мені теж про аліаси говорили для основного домену. Спробуй чи це все працюватиме.
А опишіть, будь ласка, що таке цей WordPress MU!! .
WordPress MU — розрахована на багато користувачів система для декількох блогів під управлінням однієї системи. З запуском WordPress 3.0 підтримку WordPress MU було припинено і весь функціонал додали до стандартного WordPress.
Євгеній, так, треба буде якось написати про роботс.тхт, у мене в блозі він, мабуть, трохи застарілий, давно не правив.
Дякую за статтю, дуже інформативно і багато нового, але з вказаним нижче (бо я новачок в WP) мені досить важко розібратися. Можете навести приклад хоча б узявши 2 сайти: site1.com.ua та site2.kiev.ua
Тут нічого не розумію, що саме потрібно прописувати (або просто так залишити):
$prefix = $_SERVER[«HTTP_HOST»]; $prefix = str_replace("www.", "",$prefix); $prefix = str_replace("-", "", $prefix); $prefix = str_replace(".", "", $prefix); $table_prefix = $prefix.»_» ;
Роман, це «загальний код», який працює для всіх випадків незалежно від ваших доменів. Просто в результаті вийде різний префікс для таблиць бази даних - site1comua і site2kievua. Тобто вордпрес підключається в одній і тій же базі даних, але бере таблиці певного префікса, залежно від того, на який домен заходимо.
А чи можливо піти далі і трохи убік? База загальна (з тим самим префіксом), крім _users і _usermeta.
Скажу чесно, навіть це рішення вже є трохи збоченим і може спричинити деякі проблеми, як мені здається. Тому простіше замовити на хостингу якийсь тариф, де можна було б використати декілька баз даних та сайтів. Префікс думаю один використати не можна. А взагалі, до речі, ще раджу глянути у бік створення мережі сайтів на одному вордпресі — wordpress mu або як там його. Я точно в цьому не розбирався, але на мою в останніх версіях можна якось програмно все це вирішити.
Дякуємо за відповідь на моє попереднє запитання )
Tod's Blog створений для тих, хто хоче навчитися заробляти у мережі та активно цікавиться темою монетизації сайтів.