Multysite

HIT

03.02.2016

1478

Мультисайт — это система объединения нескольких сайтов в одну систему, с единой админкой. К данному функционалу прибегают в случаях: мультирегиональности, мультиязычности а также других случаях.

Установка сети Multysite

Multysite — объединение нескольких сайтов на одной админке.

Настройка функционала Multysite:

  1. В системном файле wp-config.php находим строку
    require_once(ABSPATH . 'wp-settings.php');

    и вставляем перед ней

    /* Multisite */
    define( 'WP_ALLOW_MULTISITE', true );
  2. После этого зайдите в панель администрирования WordPress и в разделе Инструменты (Tools) появится новый пункт Установка сети (Network Setup). На этом экране вы сможете выбрать тип сети и запустить установку. Мы рекомендуем использовать Multisite в режиме субдоменов. При завершении установки WordPress вам предложит добавить несколько новых директив в файл wp-config.php и несколько строк в файл .htaccess, после чего вам необходимо повторно выполнить вход а панель администрирования, уже как супер-администратор.

После установки данной системы, администраторы не смогут редактировать (включать/отключать) плагины и темы, теперь сделать это может пользователь с правами Суперадминистратор

На хостинге необходимо сделать 2 вещи:

1. Прописать в DNS маску: *.site.ru A 8.888.888.88 (IP как у основного домена)
2. В файле httpd.conf (Apache) прописать строку: ServerAlias *.example.com. Но в некоторых хостингах нет непосредственного доступа к этому файлу, нужно писать тикет в тех.поддержку с просьбой это сделать.

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

Эту задачу может решить плагин WordPress MU Domain Mapping.

  1. ИЗ архива плагина копируем файл domain_mapping.php в /wp-content/plugins, а файл sunrise.php — в /wp-content
  2. В файле wp-config.php перед строкой
    require_once(ABSPATH . 'wp-settings.php'); 

    добавляем

    define( 'SUNRISE', 'on' );
  3. Работы на хостинге: нужно создать синоним основного сайта (алиас) — домен на котором будет второй сайт (Например: site.com)
  4. Создаем новый сайт в виде субдомена (domain.site.ru). В основном домене (site.ru) надо прописать A запись:
    Хост: domain, Тип: A, Значение записи: IP основного домена.
  5. После того как заработает новый подсайт на субдомене domain.site.ru, в его админке переходим в меню Domain Mapping в разделе Инструменты и переключаемся на другой домен site.com. Теперь сайт будет работать под доменом site.com.
  6. [Не уверен обязательно или нет..] Вносим небольшое изменение в файл wp-config.php
    define( 'COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

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

Единый шаблон мультисайта

Основная сложность, что в мультисайте функционирует один шаблон (тема).
Возможное решение:

if ( get_current_blog_id() == 1 ) :
// делаем что-нибудь только на первом сайте в сети
elseif ( get_current_blog_id() == 2 ) :
// делаем что-то на втором сайте
endif;

Решение проблемы — использование дочерних тем.

Алиасы к основному домену

В основном сайте в разделе инструменты нет настроек domain mapping. К основному сайту алиасы добавляем на хостинге (у алиасов делаем А-запись).
Если перейти по алиасу например site.org то может вылезти сообщение: «Регистрация отключена».
Чтобы этого не было прописываем в файле wp-config следующую строку (перед строкой «Это всё, дальше не редактируем. Успехов!»)

define( 'NOBLOGREDIRECT', 'http://site.ru' );

SSL для сети мультисайт

Если мультисайт изначально заведен на домен без https:// , то поменять его можно только через БД (таблица wp_options). Чтобы сертификат был и на поддоменах, нужно заказывать выпуск сертификатов для каждого поддомена (предварительно создав сами поддомены), или прописывать их в алиасах при заказе сертификата. И у поддомена также менять потом в БД siteurl и home.

Поделится информацией с друзьями

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Multysite
Одинаковая высота блоков
Рекомендации для васОдинаковая высота блоковOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.