Multysite

HIT

03.02.2016

2693

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

Установка сети 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.

Если в процессе создания поддоменов в панели хостинга создадутся поддмены (не в доменах, а в сайтах у Бегет) то поддомены нужно удалить.

Robots.txt для мультисайта

т.к. Мультисайт — это единая директория с сайтом, то возникает вопрос — как сделать robots.txt для поддоменов. Решением является плагин Multisite Robots.txt Manager (300+), он правда не обновлялся более 2-х лет, но работает как надо. В консоли каждого поддомена появляется настройка в которую мы прописываем содержимое файла
robots.txt, в т.ч. и для основного. При этом физически файла
robots.txt в основной директории сайта быть не должно.

Также в настройках указывается путь к sitemap.

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

Хорошо показал себя плагин Google XML Sitemaps. Он создает для поддоменов независимые карты сайта. Не забываем отключить sitemap плагина Yoast SEO, если используется.

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

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

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

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

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