Небольшое введение в мультисайт 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

Читать комменты и комментировать

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



Защитный код
Обновить

Небольшое введение в мультисайт WordPress | | 2012-06-19 12:00:04 | | Статьи Web-мастеру | | WordPress стал самой используемой CMS в мире. В данном уроке мы представим одну из интересных возможностей WordPress - мультисайт (известную также как создание сети). С помощью мультисайта можно | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: