Как установить родительскую тему для каждого сайта в сети WordPress Multisite
В многосайтовой сети WordPress с несколькими подсайтами может использоваться три разные темы (созданные вручную). У них есть что-то общее, поэтому необходимо выделить эти общие элементы (стили, скрипты и т.д.) в одну основную тему и создать дочерние темы для каждой из текущих тем.
Шаг 1: Создание родительской темы
Я создал родительскую тему, переместил туда общие элементы и указал названия для дочерних тем, чтобы обозначить их связь с родительской темой. Все необходимые действия были выполнены.
Шаг 2: Установка родительской темы для дочерних
Теперь последним шагом является указание в настройках каждого сайта, что текущая тема является дочерней темой для темы "hb-base-theme". Чтобы сделать это, вам нужно использовать следующий код:
// Устанавливаем родительскую тему для всех тем (нужно выполнить один раз на основном сайте).
if( isset($_GET['set_parent_theme_for_all_themes']) ){
foreach( get_sites() as $site ){
switch_to_blog( $site->blog_id );
update_option( 'template', 'hb-base-theme' );
restore_current_blog();
}
die( 'Готово!' );
}
Пояснение кода
-
Проверка параметра: Сначала код проверяет, установлен ли параметр
set_parent_theme_for_all_themes
в URL. Если да, то он выполняет следующие действия. -
Цикл по сайтам: Используется функция
get_sites()
, чтобы получить список всех подсайтов в сети. Для каждого сайта выполняются действия внутри цикла. -
Переключение на сайт: Функция
switch_to_blog($site->blog_id)
переключает контекст на текущий сайт, чтобы вы могли обновить его настройки. -
Обновление опции: Функция
update_option('template', 'hb-base-theme')
устанавливает основную тему для текущего сайта. -
Восстановление контекста: После выполнения обновления на сайте, с помощью
restore_current_blog()
код переключается обратно на основной сайт. -
Остановка выполнения: После завершения всех действий выводится сообщение "Готово!".
Заключение
Теперь вы знаете, как установит�� родительскую тему для дочерних тем в мультисайтовой сети WordPress. Такой подход позволит вам легче управлять стилями и скриптами, а также упростит администрирование тем для всех подсайтов.