Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

ЧАВО/Несколько сайтов на одной копии WordPress

Режим Multisite — не единственный способ создания нескольких сайтов на одной копии движка.

В файлах WordPress хранит только параметры для соединения к базе данных. Все остальные настройки хранятся уже в самой базе данных.

Так как база у нас общая, то имя пользователя, пароль и название базы данных для каждого сайта одинаковы. Разными будут только префиксы таблиц. В качестве префикса можно использовать значение $_SERVER['HTTP_HOST'], которое индивидуально для каждого сайта.

Процесс состоит из двух шагов:

  1. Прикрепить домен каждого сайта к каталогу, в котором находится WordPress.
  2. Заменить строку $table_prefix = 'wp_'; в файле wp-config.php на подобный фрагмент:
$prefix = str_replace( array( 'www.', '-' ), '', $_SERVER['HTTP_HOST'] );
$prefix = substr( $prefix, 0, strpos( $prefix, '.' ) );

$valid_prefixes = array( 'mysite1', 'mysite2', 'mysite3' );
if ( ! in_array( $prefix, $valid_prefixes, true ) ) {
	header( 'Location: http://mysite1.ru/' );
}

$table_prefix = "{$prefix}_wp_";

Вместо mysite1, mysite2 и т.д. подставьте нужные домены (без доменной зоны).

P.S. Данный код подойдёт только для блогов на разных доменах. Если блоги на одном домене, то надо разбирать $_SERVER['REQUEST_URI'] и брать часть пути.

Автор приёма: Денис Болтиков

« Вернуться к ЧАВО