Режим Multisite — не единственный способ создания нескольких сайтов на одной копии движка.
В файлах WordPress хранит только параметры для соединения к базе данных. Все остальные настройки хранятся уже в самой базе данных.
Так как база у нас общая, то имя пользователя, пароль и название базы данных для каждого сайта одинаковы. Разными будут только префиксы таблиц. В качестве префикса можно использовать значение $_SERVER['HTTP_HOST']
, которое индивидуально для каждого сайта.
Процесс состоит из двух шагов:
$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']
и брать часть пути.
Автор приёма: Денис Болтиков