Установка родительской темы в WordPress Multisite: пошаговое руководство

Как установить родительскую тему для каждого сайта в сети 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( 'Готово!' );

}

Пояснение кода

  1. Проверка параметра: Сначала код проверяет, установлен ли параметр set_parent_theme_for_all_themes в URL. Если да, то он выполняет следующие действия.

  2. Цикл по сайтам: Используется функция get_sites(), чтобы получить список всех подсайтов в сети. Для каждого сайта выполняются действия внутри цикла.

  3. Переключение на сайт: Функция switch_to_blog($site->blog_id) переключает контекст на текущий сайт, чтобы вы могли обновить его настройки.

  4. Обновление опции: Функция update_option('template', 'hb-base-theme') устанавливает основную тему для текущего сайта.

  5. Восстановление контекста: После выполнения обновления на сайте, с помощью restore_current_blog() код переключается обратно на основной сайт.

  6. Остановка выполнения: После завершения всех действий выводится сообщение "Готово!".

Заключение

Теперь вы знаете, как установит�� родительскую тему для дочерних тем в мультисайтовой сети WordPress. Такой подход позволит вам легче управлять стилями и скриптами, а также упростит администрирование тем для всех подсайтов.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *