Небольшое введение в мультисайт 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-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
"Если технология меняется почти каждый день, нет смысла нанимать человека потому, что он обладает специфическим набором профессиональных навыков - все равно эти навыки скоро устареют. Вам нужно стараться принимать на работу людей, которые обладают широкими универсальными способностями к решению проблем, каким бы трудным это ни оказалось." |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.