Как я могу использовать один файл стилей для нескольких подсайтов в своей мультисайтной сети?

Вопрос или проблема

У меня есть мультисайтовая установка WordPress. Каждый подсайт использует свою дочернюю тему, но есть один файл стилей, который содержит CSS-правила, которые должны использоваться на нескольких из этих подсайтов. Я не хочу иметь несколько идентичных файлов стилей для каждого подсайта, потому что, когда я вношу изменения в него, мне придется вносить эти изменения в каждую копию файла стилей или копировать и вставлять его в каждый подсайт.

Как я могу определить каждому подсайту использовать только один экземпляр этого файла стилей? Возможно, я могу создать файл style.css для каждого подсайта и внутри него написать что-то вроде перенаправления на основной style.css (тот, который действительно содержит правила)?

Во-первых, вам, очевидно, нужно использовать одну и ту же родительскую тему для всех сайтов. Затем вы настраиваете каждый подсайт с дочерней темой для этой родительской темы.

Чтобы использовать один и тот же файл стилей на нескольких сайтах, добавьте следующий код в файл functions.php каждого подсайта:

function import_shared_style_sheet() {
     wp_enqueue_style( 'shared-style-sheet', content_url( '/themes/SOURCE-THEME/style.css') );

}
add_action( 'wp_enqueue_scripts', 'import_shared_style_sheet' );

SOURCE-THEME нужно заменить на имя папки темы, из которой вы делите основной файл styles.css.

Имейте в виду, что файл styles.css дочерней темы каждого подсайта все равно будет загружаться. Так что убедитесь, что вы удалили все CSS ниже данных темы в верхней части файла. Например, вы должны иметь что-то вроде следующего (это будет отличаться в зависимости от использованной дочерней темы). В этом примере родительская тема (для всех сайтов) — twentytwenty, так что общий файл styles.css находится в дочерней теме twentytwenty.

/*
Имя темы: Тема подсайта (дочерняя тема)
URI темы: 
Шаблон: twentytwenty
Автор: 
Описание: Дочерняя тема Twenty Twenty. Делится style.css дочерней темы XXX.
Версия: 1.01
Обновлено: 2021-02-01 01:14:52
*/

Обратите внимание, что если у вас есть некоторые стили, которые нужно применить только к конкретному подсайту, вы все равно можете добавить эти стили в файл styles.css дочерней темы этого подсайта.

Используйте функцию wp_enqueue_style и укажите путь к мастер CSS файлу в источнике src="https://wordpress.stackexchange.com/questions/365476/full-path-goes-here". Смотрите документацию WP по функции здесь: https://developer.wordpress.org/reference/functions/wp_enqueue_style/

Если вы поместите универсальные стили в файл стилей родительской темы, они будут применяться независимо от дочерней темы. Они просто должны быть более специфичными, чем стили дочерних тем.

У вас не будет нескольких идентичных файлов стилей; MultiSite хранит темы всех сайтов в одном центральном месте, и обычно при настройке родительской и дочерней темы вы включаете как родительский CSS, так и CSS дочерней темы.

Ответ или решение

Как использовать один файл стилей для нескольких подсайтов в мультисайтовой сети WordPress

Ваша задача — оптимизировать использование CSS в мультисайтовой установке WordPress, чтобы избежать дублирования кода и упростить процесс его обновления. Данная инструкция предлагает эффективное решение этой проблемы.

1. Основные требования

Убедитесь, что:

  • Все подсайты используют один и тот же родительский шаблон.
  • Настроены дочерние темы для каждого подсайта.

2. Подключение общего файла стилей

Для того чтобы подключить общий файл стилей, выполните следующие шаги:

  1. Создайте общий файл стилей.

    Сначала создайте файл style.css в папке родительской темы, который будет содержать все общие CSS-правила для подсайтов.

  2. Отредактируйте файл functions.php каждой дочерней темы.

    В каждой дочерней теме (каждого подсайта) откройте файл functions.php и добавьте следующий код:

    function import_shared_style_sheet() {
       wp_enqueue_style( 'shared-style-sheet', get_template_directory_uri() . '/style.css' );
    }
    add_action( 'wp_enqueue_scripts', 'import_shared_style_sheet' );

    Обратите внимание на то, что get_template_directory_uri() будет возвращать URL папки родительской темы, что позволит подключить style.css оттуда.

  3. Ограничьте содержимое файла стилей дочерней темы.

    Если в дочерней теме было добавлено содержимое в файл style.css, убедитесь, что вы оставили только информацию о теме в верхней части файла. Например:

    /*
    Theme Name: Дочерняя тема (Sub-site Theme)
    Template: родительская-тема
    Version: 1.0
    */

    Убедитесь, что ваше основное CSS находится в файле родительской темы.

3. Персонализация стилей для отдельных подсайтов

Если вам необходимо добавить уникальные стили для конкретного подсайта, вы можете сделать это, добавив дополнительные CSS-правила в файл стилей дочерней темы. Это позволяет сохранять общие стили в одном месте, сохраняя возможность кастомизации.

4. Альтернативный подход

Если вы хотите, чтобы общий файл стилей находился в другом месте (например, в папке плагина или на стороннем сервере), модифицируйте функцию подключения следующим образом:

function import_shared_style_sheet() {
    wp_enqueue_style( 'shared-style-sheet', 'URL_вашего_style.css' );
}
add_action( 'wp_enqueue_scripts', 'import_shared_style_sheet' );

Подставьте нужный URL в параметр.

Заключение

Следуя предложенной инструкции, вы сможете эффективно управлять стилями на нескольких подсайтах вашей сети WordPress, минимизируя риск возникновения дублирования кода и упрощая процесс ведения и обновления CSS. Это не только ускорит процесс работы, но и сделает его более организованным и безопасным.

Оцените материал
Добавить комментарий

Капча загружается...