Продолжаем и углубляем тему установки WordPress в рамках цикла статей по обустройству рабочего места WordPress-разработчика.
WordPress Site Network — WordPress в режиме сети (еще одно название «режим Multisite»), до выхода WordPress 3.0 распространялся в виде отдельного дистрибутива и назывался WordPress MU. Начиная с версии 3.0 весь функционал WordPress MU был интегрирован в основное ядро WordPress. WordPress MU больше не существует как отдельная разработка.
Что дает режим сети? Возможность создания практически неограниченного количества подсайтов в рамках одной инсталляции. Подсайт функционирует почти как отдельный блог, со своим администратором, пользователями и т.п. Т.е. если вы хотите, чтобы в рамках одного сайта, у вас было несколько разных по тематике блогов (подсайтов), то режим сети — это ваш выбор.
Для WordPress-разработчика режим сети это дополнительная, хотя и не очень большая, головная боль. Например новый плагин, надо тестировать как в обычной установке, так и в сетевой. Предусмотреть корректную активацию плагина по всей сети, корректную работу на подсайтах и т.п. Таким образом наличие не только обычной установки WordPress, но и сетевой — обязательное требование к рабочему месту )
Активация режима сети
У вас уже должна быть создана чистая установка WordPress с рабочими постоянными ссылками.
Существует два основных варианта создания сети:
- Подсайты располагаются на поддоменах (site1.example.com и site2.example.com)
- Подсайты располагаются в поддиректориях (example.com/site1 и example.com/site2)
Для установки на локальном сервере мы выбираем более простой второй вариант. Требования к системе: наличие mod_rewrite и работающего .htaccess. Если на вашем сайте работают постоянные ссылки, значит эти требования выполнены в полном объеме.
- Первый шаг. Открываем для редактирования wp-config.php и добавляем в него следующую строчку:
define('WP_ALLOW_MULTISITE', true);
сразу НАД надписью /* Это всё, дальше не редактируем. Успехов! */
- Сохраняем wp-config.php и переходим в панель управления. Открываем меню Инструменты -> Установка сети:
Установка WordPress Site Network (1) Выбираем имя сети, вводим e-mail администратора сети (ввожу такой же как у администратора текущей установки).
- Нажимаем кнопку Установить и в точности следуем инструкциям полученным на следующей странице:
Установка WordPress Site Network (2) 1. Создаем папку blogs.dir внутри папки wp-content.
2. Добавляем строки, указанные в п.2 в wp-config.php. Лично я их вставляю на место ранее вставленной строки — define(‘WP_ALLOW_MULTISITE’, true); — ее можно удалить, она нужна только для вывода страницы с инструкцией. Вот на всякий случай фрагмент итогового файла:define('WP_DEBUG', false); define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', false ); $base = '/_wordpress-clean/'; define( 'DOMAIN_CURRENT_SITE', 'localhost' ); define( 'PATH_CURRENT_SITE', '/_wordpress-clean/' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); /* Это всё, дальше не редактируем. Успехов! */
3. Заменяем правила в файле .htaccess. Заменяем все строки между # BEGIN WordPress и # END WordPress. Получаем:
# BEGIN WordPress RewriteEngine On RewriteBase /_wordpress-clean/ RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L] RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L] RewriteRule . index.php [L] # END WordPress
- На этом все. Возвращаемся в панель управления, чтобы создать новый сайт сети.
Создание сайта сети
- Пару слов о создании дополнительного сайта. После успешной установки сети, в панели управления при нажатии на имя пользователя, вы должны увидеть новый пункт меню — Управление сетью:
Создание нового сайта сети (1) Конечно, этот пункт доступен только, если вы являетесь администратором сети.
- В панели управления сетью переходим в меню Сайты -> Добавить новый:
Создание нового сайта сети (2) Выбираем адрес сайта (должен быть уникальный, не должен совпадать с ярлыками страниц основного сайта), заголовок, e-mail администратора и нажимаем Добавить сайт.
- Возвращаемся к списку сайтов:
Создание нового сайта сети (3) и переходим в консоль нового сайта.
- Язык нового сайта по умолчанию — английский. Не пугайтесь. Переходим в Settings -> General и изменяем язык сайта на русский:
- Все. Теперь у нас два сайта: основной (http://localhost/_wordpress-clean/) и дополнительный ( http://localhost/_wordpress-clean/site1).
Читайте далее: Установка Eclipse PHP Development Tools (PDT) на Windows.
Полезные ссылки:
7 ответов к “Апгрейд WordPress до WordPress Site Network (WordPress в режиме сети)”
Народ, а может у кого есть скрипт для вывода комбобокса со списком дочерних сайтов сети на главном сайте или как-то так и/или знаете где это посмотреть — дайте знать! очень нужно ))))
Вот пример виджета для вывода сайтов сети:
Код разместить в functions.php текущей темы.
А у меня что то файлы в каталоге поддомена на сервере не появляются, их туда самому копировать надо или они на каком то отдельном этапе туда заливаются?
Тут фишка в чем? Сайты на разных доменах работают с одной инсталяции WordPress, т.е. никакие файлы никуда дополнительно заливать не надо.
Все поддомены должны указывать на основную инсталляцию.
странно, Я когда перехожу в консоль сайта, мне выводит 404. А на сервере вообще надо каталоги для поддоменов создавать? Понятно что на денвере всё само происходит, но что делать если настройки хостера?
Нет, не надо на сервере никаких дополнительных каталогов.
Мне кажется, вы здорово начудили с инсталяцией. Советую начать заново.
Причем установка сети сайтов на поддоменах — это более сложный вариант, чем установка сети на подкаталогах (нужно вносить дополнительные записи в dns, не все хостеры предоставляют эту услугу). Лучше начать с подкаталогов.
В дальнейшем можно будет выдать сайтам отдельные домены с помощью плагина WordPress MU Domain Mapping
Как оказалось проблема была с настройками панельки ISP,
Потом прописываем поддомен у хостера (у большинства это наверное делается автоматически) и всё.