Небольшое введение в мультисайт WordPress
WordPress стал самой используемой CMS в мире. В данном уроке мы представим одну из интересных возможностей WordPress - мультисайт (известную также как создание сети). С помощью мультисайта можно создать несколько блогов, которые будут использовать одни и те же файлы CMS, базу данных, плагины, темы. Можно вставлять в блог записи из другого блога сети. Можно динамически создавать блоги в разных доменах и многое другое.
Что такое мультисайт и чем он так хорош?
С помощью мультисайта можно создавать (и удалять) несколько разных блогов, которые будут работать в одном программном пространстве. Они будут использовать одни и те же базу данных и системные файлы. Домен может быть как одним и тем же, так и совершенно другим.
Такое построение системы создает отличные условия для построения сложной сети за несколько нажатий кнопки мыши.
Например, вы отличный фрилансер, у которого имеется много великолепных клиентов. Если вы используете WordPress в качестве CMS, то приходится устанавливать для каждого клиента свой блог. Но если вы задействуете сеть, то нужно будет просто загрузить новую тему и создать под-блог для каждого клиента. Можно даже использовать одни и те же тексты, меню и категории для всех них.
Преимущества
Разделение информации
Информация легко распределяется между блогами сети:
- Общая база данных по пользователям – пользователь, который зарегистрировался в сети, будет иметь доступ ко всем сайтам. Не нужно заводить регистрационную запись для каждого блога сети отдельно.
- Записи – можно легко использовать записи (категории, пользовательские поля…) из одного блога сети в других.
- Темы и плагины – любая тема или плагин устанавливается доступной супер администратору (администратору сети) и может быть использована для любого блога. Не нужно устанавливать один и тот же плагин в 300 блогах.
Ограничение информации
Каждый блог сети может отличаться от других. Конфигурация, выбранная тема, администратор сайта для каждого блога могут быть уникальными.
Примеры
Имеется множество примеров использования мультисайта WordPress:
- Блоги, создаваемые пользователями - WordPress.com
- Блоги с несколькими темами – например Tutsplus.com
Процесс установки сети очень подробно описан в WordPress Codex, поэтому мы не будем рассматривать его в рамках данного урока.
Как использовать панель администратора
Панелью администратора сети очень просто пользоваться. Но ее не просто найти. После установки мультисайта она будет доступна здесь:
В панели администратора сети можно решить почти все задачи, которые возникают при управлении данным сложным механизмом.
Если нужно создать новый блог, просто выбираем Сайты > Новый сайт (Sites > New site). Сразу после создания сайта для него станут доступны различные опции. Используйте их осторожно (например, не надо менять структуру постоянных ссылок для каждого блога, потому что данное действие может привести ко множественным ошибкам).
Если нужно, чтобы плагин / тема стали доступны для каждого блога в сети, воспользуйтесь опцией:
Полезные вставки кода
При использовании кода нужно уделить внимание нескольким моментам. При активации сети функционал WorPress немного меняется. Некоторые функции работают не так, как вы могли подумать. Также, появляется несколько новых функций.
Полный список функций, которые могут вам понадобиться.
Переключение между блогами – функция switch_to_blog()
Например, у вас есть wpmultisite.com, на котором используется WordPress с установленной сетью. Внутри wpmultisite.com у вас есть /phpblog и /cssblog. Структура WordPress следующая:
- wpmultisite.com/ – Основной сайт, так как установлен первым. Всегда имеет ID 1.
- wpmultisite.com/phpblog – Второй установленный блог, поэтому имеет ID 2.
- wpmultisite.com/cssblog – Третий установленный блог, поэтому имеет ID 3
Когда страница запрашивается на любом из данных блогов, сервер будет выполнять запрос так, как будто имеет единичную установку WordPress, разница будет заключаться только в получении данных с текущим ID блога.
Но вы можете изменить порядок с помощью функции switch_to_blog(). Она заставляет блог получать данные из другого блога сети. Таким образом, если вы хотите, чтобы блог phpblog выдавал данные блога cssblog, нужно использовать функцию switch_to_blog(3). Данный механизм не работает для плагинов, которые вызываются при реальном доступе к блогу.
Нужно задать вопрос: “А как мне остановить данный процесс?“. Как только вы сделаете все, что хотели, то можно восстановить нормальное функционирование с помощью функции restore_current_blog(). Если вы вызываете switch_to_blog() дважды, то каждый вызов функции restore_current_blog() вернет функционирование в предыдущий активный блог. Например, если вы переключаете блог switch_to_blog(2) и ВНУТРИ него еще раз используете функцию switch_to_blog(3), то первый вызов restore_current_blog() вернет вас в блог 2, а второй вызов - в оригинальный блог.
Еще один важный момент заключается в том, что $blog_id - глобальная переменная, которая хранит значение ID текущего отображаемого блога. Данный факт очень полезен, например, когда используется одна и та же тема для нескольких блогов в сети.
Небольшой пример, как получить запись из phpblog, если в корне, из cssblog, если вы в phpblog и из корня, если вы в cssblog:
//Получаем активный блог global $blog_id; switch($blog_id) { case 1: //Мы в корне, переходим в phpblog $goto = 2; break; case 2 : //Мы в phpblog, переходим в cssblog $goto = 3; break; case 3 : //Мы в cssblog, переходим в корень $goto = 1; break; } switch_to_blog($goto); //Магия! //Комментируем код внутри в блока switch. Будет очень легко определить ход действий спустя месяц. $lastposts = get_posts('numberposts=-1'); if (!empty($lastposts)) { foreach($lastposts as $post) : setup_postdata($post); //Делаем то, что нужно endforeach; } restore_current_blog();
Получаем записи из всех блогов – функция get_last_updated()
Что делать, если нужно получать последние свежие записи изо всех блогов сети? Функция get_last_updated() поможет решить задачу.
Она возвращает последние модифицированные блоги как массив, остается только использовать foreach!
Рассмотрим пример, в котором выводится последняя запись из модифицированного блога:
$blogs = get_last_updated(); echo ' <h1>Последняя запись в сети</h1> '; foreach ($blogs AS $blog) { echo " <h2>".$blog["domain"].$blog["path"]."</h2> "; switch_to_blog($blog["blog_id"]); $lastposts = get_posts('numberposts=1'); foreach($lastposts as $post) : setup_postdata($post); the_title(); endforeach; restore_current_blog(); }
Динамическое создание блога – функция wpmu_create_blog()
С помощью функции wpmu_create_blog() вы можете создать систему, подобную wordpress.com, где каждый пользователь может создать себе собственный блог.
Но перед созданием блога необходимо создать или выбрать администратора. После того, как будет иметься user_id администратора, нужно вызвать функцию wpmu_create_blog() с указанием параметров. Обратите внимание на параметр “path”, значение которого должно иметь символ “/” в начале. Иначе блог будет создан с адресом, который будет недоступен (в примере без символа “/” будет создан wpmultisite.com1wd).
$user_id = wp_create_user( $user, $pass, $mail ); //Параметры: wpmu_create_blog($domain, $path, $title, $user_id, $meta, $site_id) $id = wpmu_create_blog("www.wpmultisite.com";, "/1wd", "1WD inside wpmultisite", $user_id); echo $id;
Заключение
Данный урок представляет собой лишь введение в удивительный мир мультисайта WordPress. Сеть блогов является следующим шагом на пути развития вашей системы.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/BL-REygIwmk/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Чтобы вырастить плодоносящий сайт - его полезно регулярно поливать и удобрять с помощью рекламы и оптимизации Компания "RedLine" |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.