- Описание класса
- Методы
- append_to_selector()
- compute_preset_classes()
- compute_preset_vars()
- compute_style_properties()
- compute_theme_vars()
- convert_custom_properties()
- convert_variables_to_value()
- do_opt_in_into_settings()
- filter_slugs()
- flatten_tree()
- get_blocks_metadata()
- get_block_classes()
- get_block_element_selectors()
- get_block_nodes()
- get_block_selectors()
- get_block_styles()
- get_css_variables()
- get_custom_css()
- get_custom_templates()
- get_data()
- get_default_slugs()
- get_element_class_name()
- get_feature_declarations_for_node()
- get_from_editor_settings()
- get_layout_styles()
- get_merged_preset_by_slug()
- get_metadata_boolean()
- get_name_from_defaults()
- get_patterns()
- get_preset_classes()
- get_property_value()
- get_raw_data()
- get_root_layout_rules()
- get_settings()
- get_settings_slugs()
- get_settings_values_by_slug()
- get_setting_nodes()
- get_stylesheet()
- get_styles_block_nodes()
- get_styles_for_block()
- get_style_nodes()
- get_svg_filters()
- get_template_parts()
- has_properties()
- is_safe_css_declaration()
- maybe_opt_in_into_settings()
- merge()
- prepend_to_selector()
- process_blocks_custom_css()
- remove_indirect_properties()
- remove_insecure_properties()
- remove_insecure_settings()
- remove_insecure_styles()
- remove_keys_not_in_schema()
- replace_slug_in_string()
- resolve_custom_css_format()
- resolve_variables()
- sanitize()
- scope_selector()
- set_spacing_sizes()
- should_override_preset()
- to_ruleset()
- update_separator_declarations()
- __construct()
- Примеры использования
- Создание экземпляра класса WP_Theme_JSON
- Добавление подселектора к существующему
- Вычисление стилей для предустановленных классов
- Извлечение CSS-переменных для пользовательских значений
- Вопросы и ответы
- Как получить данные из файла theme.json?
- Как получить список стилей блока из theme.json?
- Как получить список классов блока из theme.json?
- Как получить список настроек блока из theme.json?
- Как получить список шаблонов страниц из активной темы?
- Как получить список паттернов из theme.json?
- Как получить список CSS-переменных из theme.json?
- Как применить CSS-стили из theme.json к стилям блока?
- Как преобразовать внутреннее представление переменных в CSS-представление?
Описание класса
Класс WP_Theme_JSON инкапсулирует обработку структур, которые соответствуют спецификации theme.json. Он предоставляет методы для работы с темами WordPress и обработки данных, содержащихся в файле theme.json. Класс позволяет разработчикам работать с настройками темы, стилями блоков, метаданными блоков и другими элементами, определенными в theme.json.
Методы
__construct— Конструктор.append_to_selector— Добавляет подселектор к существующему.compute_preset_classes— Возвращает сгенерированные правила для классов предустановленных значений настроек.compute_preset_vars— Извлекает CSS-переменные для предустановленных значений настроек и добавляет их в массив$declarations.compute_style_properties— Извлекает свойства стиля из массива$stylesи добавляет их в массив$declarations.compute_theme_vars— Извлекает CSS-переменные для пользовательских значений настроек и добавляет их в массив$declarations.convert_custom_properties— Преобразует внутреннее представление переменных в представление CSS.convert_variables_to_value— Заменяет CSS-переменные их значениями на месте.do_opt_in_into_settings— Включает некоторые настройки.filter_slugs— Удаляет предустановленные значения, чей идентификатор совпадает с заданными идентификаторами.flatten_tree— Создает плоское дерево, объединяя ключи и связывая значения с новыми ключами.get_block_classes— Преобразует каждый раздел стиля в список правил, содержащих стили блока для добавления в таблицу стилей.get_block_element_selectors— Генерирует все селекторы элементов для блока.get_block_nodes— Внутренний метод для получения узлов блока из файлаtheme.json.get_block_selectors— Возвращает метаданные селекторов для блока.get_block_styles— Преобразует каждый раздел стиля в список правил, содержащих стили блока для добавления в таблицу стилей.get_blocks_metadata— Возвращает метаданные для каждого блока.get_css_variables— Преобразует каждый раздел стиля в список правил для добавления в таблицу стилей.get_custom_css— Возвращает пользовательский CSS для глобальных стилей.get_custom_templates— Возвращает шаблоны страниц активной темы.get_data— Возвращает действительныйtheme.json, предоставленный темой.get_default_slugs— Возвращает словарь со значениями по умолчанию для всех предустановленных значений в виде ассоциативного массива, где ключи — это пути к предустановленным значениям, а значения — это список идентификаторов.get_element_class_name— Возвращает имя класса по имени элемента.get_feature_declarations_for_node— Генерирует объявления стилей для функций узла, таких как цвет, граница, типографика и т. д., которые имеют пользовательские селекторы в связанных метаданных блока.get_from_editor_settings— Преобразует заданные настройки редактора в форматtheme.json.get_layout_styles— Получает CSS-правила макета для конкретного блока из определений макетаtheme.json.get_merged_preset_by_slug— Возвращает массив предустановленных значений, сгруппированных по идентификатору.get_metadata_boolean— Возвращает значение для метаданных, которые могут быть логическими значениями или путями к логическим значениям.get_name_from_defaults— Возвращает имя предустановленного значенияdefaultпо заданному идентификатору.get_patterns— Возвращает желаемые шаблоны (идентификаторы) текущей темы для регистрации из каталога шаблонов.get_preset_classes— Создает новые правила в виде классов для каждого предустановленного значения.get_property_value— Возвращает свойство стиля для заданного пути.get_raw_data— Возвращает необработанные данные.get_root_layout_rules— Выводит CSS-правила макета для корневого элемента.get_setting_nodes— Создает метаданные для узлов настроек в виде массива.get_settings— Возвращает существующие настройки для каждого блока.get_settings_slugs— Аналогичноget_settings_values_by_slug, но не вычисляет значение.get_settings_values_by_slug— Возвращает предустановленные значения, сгруппированные по идентификатору.get_style_nodes— Создает метаданные для узлов стилей в виде массива.get_styles_block_nodes— Публичный вспомогательный метод для получения узлов блока из файлаtheme.json.get_styles_for_block— Получает CSS-правила для конкретного блока изtheme.json.get_stylesheet— Возвращает таблицу стилей, полученную в результате обработки структурыtheme.json, представленной этим объектом.get_svg_filters— Преобразует все предустановленные значения фильтров (двутона) в SVG.get_template_parts— Возвращает данные о частях шаблона активной темы.has_properties— Проверяет, содержит ли метаданные ключ с именемproperties.is_safe_css_declaration— Проверяет, является ли предоставленное пользователем объявление безопасным.maybe_opt_in_into_settings— Включает некоторые настройки по умолчанию, если тема объявила поддержку.merge— Объединяет новые входные данные.prepend_to_selector— Добавляет подселектор к существующему.process_blocks_custom_css— Обрабатывает CSS для применения вложенности.remove_indirect_properties— Удаляет косвенные свойства из заданного входного узла и устанавливает их в заданный выходной узел.remove_insecure_properties— Удаляет небезопасные данные изtheme.json.remove_insecure_settings— Обрабатывает узел настроек и возвращает тот же узел без небезопасных настроек.remove_insecure_styles— Обрабатывает узел стилей и возвращает тот же узел без небезопасных стилей.remove_keys_not_in_schema— Удаляет ключи, отсутствующие в схеме, из заданного дерева.replace_slug_in_string— Преобразует идентификатор в CSS-пользовательское свойство.resolve_custom_css_format— Преобразует внутреннее представление переменных в представление CSS.resolve_variables— Разрешает значения CSS-переменных в заданных стилях.sanitize— Очищает входные данные в соответствии со схемами.scope_selector— Функция, которая создает область видимости для селектора. Работает аналогично вложенности SCSS, за исключением того, что оператор&не поддерживается.set_spacing_sizes— Устанавливает массивspacingSizesна основе значенийspacingScaleизtheme.json.should_override_preset— Определяет, следует ли переопределить предустановленное значение или нет. (устарело)to_ruleset— Создает соответствующий правилу селектор и список объявлений.update_separator_declarations— Возвращает отфильтрованный массив объявлений, если есть блок-разделитель, в котором определено только свойство фона вtheme.json, добавляя атрибут цвета, чтобы отразить изменения на фронтенде.
Методы
append_to_selector()
Метод append_to_selector() класса WP_Theme_JSON используется для добавления подселектора к существующему селектору.
Метод принимает два обязательных аргумента: оригинальный селектор и селектор, который нужно добавить.
Результатом работы метода является новый селектор, полученный путем добавления подселектора к оригинальному селектору.
WP_Theme_JSON::append_to_selector( string $selector, string $to_append ): string Метод append_to_selector() принимает две строки в качестве аргументов: оригинальный селектор и селектор, который нужно добавить. Возвращает строку — новый селектор.
$selector (string) — Обязательный. Оригинальный селектор.
$to_append (string) — Обязательный. Селектор, который нужно добавить.
Метод append_to_selector() возвращает новый селектор в виде строки.
/**
* Пример использования метода append_to_selector()
*
* Добавляет подселектор к оригинальному селектору.
*
* @param string $original_selector Оригинальный селектор.
* @param string $to_append Селектор, который нужно добавить.
* @return string Новый селектор.
*/
$original_selector = 'body';
$to_append = ' .container';
$new_selector = WP_Theme_JSON::append_to_selector( $original_selector, $to_append );
В данном примере метод append_to_selector() используется для добавления подселектора .container к оригинальному селектору body. Результатом работы метода будет новый селектор body .container.
compute_preset_classes()
Метод compute_preset_classes() класса WP_Theme_JSON используется для обработки структур, соответствующих спецификации theme.json. Он принимает массив настроек и возвращает сгенерированные наборы правил для предустановленных классов.
WP_Theme_JSON::compute_preset_classes( array $settings, string $selector, string[] $origins ): string Метод compute_preset_classes() принимает следующие параметры:
$settings(обязательный) — настройки для обработки.$selector(обязательный) — селектор, обрамляющий классы.$origins(обязательный) — список источников для обработки.
$settings (array) — Обязательный. Настройки для обработки.
$selector (string) — Обязательный. Селектор, обрамляющий классы.
$origins (string[]) — Обязательный. Список источников для обработки.
Метод compute_preset_classes() возвращает результат обработки предустановленных классов в виде строки.
<?php
$settings = array(
// Настройки для обработки
);
$selector = '.my-selector';
$origins = array(
'origin1',
'origin2',
);
$result = WP_Theme_JSON::compute_preset_classes( $settings, $selector, $origins );
echo $result;
?> В приведенном выше примере кода мы создаем массив $settings с настройками для обработки. Затем мы указываем селектор $selector и список источников $origins. Затем мы вызываем метод compute_preset_classes() с этими параметрами и сохраняем результат в переменную $result. Наконец, мы выводим результат на экран.
compute_preset_vars()
Метод compute_preset_vars() класса WP_Theme_JSON используется для извлечения CSS Custom Properties для пресетов и добавления их в массив $declarations в соответствии с заданным форматом.
Метод принимает на вход настройки блока и список источников, которые необходимо обработать.
WP_Theme_JSON::compute_preset_vars( array $settings, string[] $origins ): array Метод compute_preset_vars() принимает два обязательных параметра: $settings (массив настроек для обработки) и $origins (список источников для обработки).
$settings (array) — Обязательный. Настройки для обработки.
$origins (string[]) — Обязательный. Список источников для обработки.
Метод compute_preset_vars() возвращает измененный массив $declarations.
<code>// Пример использования метода compute_preset_vars()</code>
<code>$settings = array(
'preset' => array(
'color' => 'red',
'background' => 'blue'
)
);
$origins = array(
'theme',
'plugin'
);
$result = WP_Theme_JSON::compute_preset_vars( $settings, $origins );
// $result содержит измененный массив $declarations</code> compute_style_properties()
Метод compute_style_properties() класса WP_Theme_JSON используется для извлечения свойств стиля из массива стилей и добавления их в массив $declarations в соответствии с форматом.
WP_Theme_JSON::compute_style_properties( array $styles, array $settings = array(), array $properties = null, array $theme_json = null, string $selector = null, boolean $use_root_padding = null ): array Метод compute_style_properties() принимает следующие параметры:
$styles(обязательный) — массив стилей для обработки.$settings(необязательный) — массив настроек темы. По умолчанию:array().$properties(необязательный) — метаданные свойств. По умолчанию:null.$theme_json(необязательный) — массив темы JSON. По умолчанию:null.$selector(необязательный) — селектор блока стилей. По умолчанию:null.$use_root_padding(необязательный) — добавлять ли пользовательские свойства на уровне корня. По умолчанию:null.
$styles (array) — Обязательный. Стили для обработки.
$settings (array) — Необязательный. Настройки темы. По умолчанию: array().
$properties (array) — Необязательный. Метаданные свойств. По умолчанию: null.
$theme_json (array) — Необязательный. Массив темы JSON. По умолчанию: null.
$selector (string) — Необязательный. Селектор блока стилей. По умолчанию: null.
$use_root_padding (boolean) — Необязательный. Добавлять ли пользовательские свойства на уровне корня. По умолчанию: null.
Метод compute_style_properties() возвращает измененный массив $declarations.
<code>// Пример использования метода compute_style_properties()
$styles = array(
'color' => 'red',
'background-color' => 'blue',
);
$settings = array(
'font-size' => '16px',
);
$properties = array(
'color' => array(
'type' => 'color',
'label' => 'Text Color',
),
'background-color' => array(
'type' => 'color',
'label' => 'Background Color',
),
);
$theme_json = array(
'version' => '1.0',
);
$selector = '.my-selector';
$use_root_padding = true;
$declarations = WP_Theme_JSON::compute_style_properties( $styles, $settings, $properties, $theme_json, $selector, $use_root_padding );
В данном примере метод compute_style_properties() принимает массив стилей $styles, массив настроек темы $settings, метаданные свойств $properties, массив темы JSON $theme_json, селектор блока стилей $selector и флаг $use_root_padding. Он обрабатывает стили и возвращает измененный массив $declarations.
compute_theme_vars()
Метод compute_theme_vars() является частью класса WP_Theme_JSON и используется для извлечения CSS-переменных пользовательских значений из массива настроек и добавления их в массив $declarations в соответствии с форматом.
WP_Theme_JSON::compute_theme_vars( array $settings ): array Метод compute_theme_vars() принимает один обязательный параметр $settings — массив настроек, который нужно обработать. Возвращает метод модифицированный массив $declarations.
$settings (array) — Обязательный. Настройки, которые нужно обработать.
Метод compute_theme_vars() возвращает модифицированный массив $declarations.
<?php
/**
* Пример использования метода compute_theme_vars()
*
* @param array $settings Настройки, которые нужно обработать.
*
* @return array Модифицированный массив $declarations.
*/
$declarations = WP_Theme_JSON::compute_theme_vars( $settings );
?> convert_custom_properties()
Метод convert_custom_properties() класса WP_Theme_JSON используется для преобразования внутреннего представления переменных в представление CSS. Он используется для конвертации переменных, которые соответствуют спецификации theme.json.
WP_Theme_JSON::convert_custom_properties( string $value ): string Метод convert_custom_properties() принимает один обязательный параметр $value, который представляет собой переменную, такую как var:preset|color|vivid-green-cyan, которую нужно преобразовать.
$value (string) — Обязательный. Переменная, такая как var:preset|color|vivid-green-cyan, которую нужно преобразовать.
Метод convert_custom_properties() возвращает преобразованную переменную в виде строки.
<?php
/**
* Пример использования метода convert_custom_properties()
*/
// Переменная, которую нужно преобразовать
$value = 'var:preset|color|vivid-green-cyan';
// Вызов метода convert_custom_properties()
$converted_value = WP_Theme_JSON::convert_custom_properties( $value );
// Вывод преобразованной переменной
echo $converted_value;
?> convert_variables_to_value()
Метод convert_variables_to_value() класса WP_Theme_JSON заменяет переменные CSS на их значения.
Данный метод используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::convert_variables_to_value( array $styles, array $values ): array Метод convert_variables_to_value() принимает два обязательных параметра:
$styles— массив с обязательными CSS-объявлениями, которые требуется преобразовать.$values— массив с обязательными парами ключ => значение, которые будут использоваться для замены.
$styles(array) — Обязательный. CSS-объявления, которые требуется преобразовать.$values(array) — Обязательный. Пары ключ => значение, которые будут использоваться для замены.
Метод convert_variables_to_value() возвращает массив.
$styles = array(
'color' => 'var(--primary-color)',
'background-color' => 'var(--secondary-color)',
);
$values = array(
'--primary-color' => '#ff0000',
'--secondary-color' => '#00ff00',
);
$converted_styles = WP_Theme_JSON::convert_variables_to_value( $styles, $values );
В данном примере мы имеем массив $styles с CSS-объявлениями, содержащими переменные CSS, и массив $values с парами ключ => значение, которые будут использоваться для замены. Метод convert_variables_to_value() применяется к массиву $styles и возвращает преобразованный массив $converted_styles, в котором переменные CSS заменены на их значения.
do_opt_in_into_settings()
Метод do_opt_in_into_settings() класса WP_Theme_JSON используется для включения некоторых настроек. Он позволяет активировать определенные настройки, которые могут быть определены в файле theme.json. Этот метод обрабатывает структуры, соответствующие спецификации theme.json.
WP_Theme_JSON::do_opt_in_into_settings( array $context ) Метод do_opt_in_into_settings() принимает один параметр:
$context(обязательный): Контекст, к которому относятся настройки. Это массив, содержащий информацию о контексте, в котором используются настройки.
/**
* Пример использования метода do_opt_in_into_settings()
*/
$context = array(
'theme' => 'my_theme',
'plugin' => 'my_plugin',
'context' => 'frontend',
'settings' => array(
'setting_1' => 'value_1',
'setting_2' => 'value_2'
)
);
WP_Theme_JSON::do_opt_in_into_settings( $context );
В приведенном выше примере кода создается массив $context, который содержит информацию о контексте, в котором используются настройки. Затем метод do_opt_in_into_settings() вызывается с этим массивом в качестве параметра. Это позволяет активировать определенные настройки, указанные в массиве $context.
Метод do_opt_in_into_settings() принимает следующий параметр:
$context(обязательный): Контекст, к которому относятся настройки. Это массив, содержащий информацию о контексте, в котором используются настройки.
Параметр $context должен быть массивом, содержащим следующие ключи:
'theme': Имя темы, к которой относятся настройки.'plugin': Имя плагина, к которому относятся настройки (если применимо).'context': Контекст, в котором используются настройки (например, ‘frontend’, ‘backend’, ‘custom’, и т.д.).'settings': Массив настроек, которые должны быть включены.
Все ключи в массиве $context являются обязательными.
filter_slugs()
Метод filter_slugs() класса WP_Theme_JSON удаляет предустановленные значения, чей слаг (slug) совпадает с любым из указанных слагов.
WP_Theme_JSON::filter_slugs( array $node, array $slugs ): array Метод filter_slugs() принимает два обязательных параметра: $node — узел с предустановленными значениями для проверки, и $slugs — слаги, которые не должны быть переопределены. Метод возвращает новый узел с отфильтрованными значениями.
$node (array) (обязательный): Узел с предустановленными значениями для проверки.
$slugs (array) (обязательный): Слаги, которые не должны быть переопределены.
Метод filter_slugs() возвращает новый узел с отфильтрованными значениями.
<code>// Узел с предустановленными значениями
$node = array(
'color' => array(
'value' => '#ffffff',
'slug' => 'background-color',
),
'font' => array(
'value' => 'Arial',
'slug' => 'font-family',
),
);
// Слаги, которые не должны быть переопределены
$slugs = array(
'background-color',
);
// Фильтрация узла
$new_node = WP_Theme_JSON::filter_slugs( $node, $slugs );</code> В приведенном примере метод filter_slugs() принимает узел $node с предустановленными значениями и массив $slugs с указанными слагами, которые не должны быть переопределены. Результатом работы метода будет новый узел $new_node с отфильтрованными значениями.
flatten_tree()
Метод flatten_tree() класса WP_Theme_JSON принимает дерево и создает его сплющенную версию, объединяя ключи и привязывая значения листьев к новым ключам. Он используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::flatten_tree( array $tree, string $prefix = '', string $token = '--' ): array Метод flatten_tree() принимает следующие параметры:
$tree(обязательный) — Входное дерево для обработки.$prefix(необязательный) — Префикс, добавляемый к каждой переменной. По умолчанию: пустая строка.$token(необязательный) — Токен, используемый между уровнями. По умолчанию: ‘—‘.
$tree (array) — Обязательный. Входное дерево для обработки.
$prefix (string) — Необязательный. Префикс, добавляемый к каждой переменной. По умолчанию: пустая строка.
$token (string) — Необязательный. Токен, используемый между уровнями. По умолчанию: ‘—‘.
Метод flatten_tree() возвращает сплющенное дерево в виде массива.
<?php
// Пример использования метода flatten_tree()
$tree = array(
'color' => array(
'primary' => '#ff0000',
'secondary' => '#00ff00',
),
'font' => array(
'family' => 'Arial',
'size' => '12px',
),
);
$prefix = 'theme';
$token = '__';
$flattened_tree = WP_Theme_JSON::flatten_tree( $tree, $prefix, $token );
// Вывод сплющенного дерева
print_r( $flattened_tree );
?> Вывод:
Array
(
[theme--color--primary] => #ff0000
[theme--color--secondary] => #00ff00
[theme--font--family] => Arial
[theme--font--size] => 12px
)
get_blocks_metadata()
Метод get_blocks_metadata() класса WP_Theme_JSON возвращает метаданные для каждого блока. Он используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::get_blocks_metadata(): array Метод get_blocks_metadata() вызывается статически, без создания экземпляра класса WP_Theme_JSON. Он возвращает массив метаданных блоков.
Пример использования:
$blocks_metadata = WP_Theme_JSON::get_blocks_metadata();
В этом примере переменная $blocks_metadata будет содержать массив с метаданными блоков.
Метод get_blocks_metadata() возвращает массив метаданных блоков. Каждый элемент массива представляет собой метаданные одного блока.
get_block_classes()
Метод get_block_classes() преобразует каждый раздел стиля в список правил, содержащих стили блока, которые будут добавлены к таблице стилей. Он используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::get_block_classes( array $style_nodes ): string Метод get_block_classes() принимает один обязательный параметр:
$style_nodes(array) — Узлы со стилями. Обязательный параметр.
$style_nodes (array) — Узлы со стилями. Обязательный параметр.
Метод get_block_classes() возвращает новую таблицу стилей в виде строки.
<code>$style_nodes = array(
array(
'selector' => '.wp-block',
'styles' => array(
'color' => 'red',
'background-color' => 'blue',
),
),
array(
'selector' => '.wp-block-heading',
'styles' => array(
'font-size' => '20px',
'font-weight' => 'bold',
),
),
);
$theme_json = new WP_Theme_JSON();
$block_classes = $theme_json->get_block_classes( $style_nodes );</code> get_block_element_selectors()
Метод get_block_element_selectors() класса WP_Theme_JSON генерирует все селекторы элементов для блока. Он используется для обработки структур, которые соответствуют спецификации theme.json.
WP_Theme_JSON::get_block_element_selectors( string $root_selector ): array Метод get_block_element_selectors() принимает один обязательный параметр:
$root_selector(строка) — Корневой CSS-селектор блока.
$root_selector (строка, обязательный): Корневой CSS-селектор блока.
Метод get_block_element_selectors() возвращает массив селекторов элементов блока.
/**
* Пример использования метода get_block_element_selectors()
*
* @param string $root_selector Корневой CSS-селектор блока.
* @return array Массив селекторов элементов блока.
*/
$block_element_selectors = WP_Theme_JSON::get_block_element_selectors( $root_selector );
get_block_nodes()
Метод get_block_nodes() является внутренним методом класса WP_Theme_JSON и предназначен для получения блочных узлов из файла theme.json. Он используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::get_block_nodes( array $theme_json ): array Метод get_block_nodes() принимает один параметр:
$theme_json(array, обязательный) — Преобразованный в массивtheme.json.
$theme_json (array, обязательный): Преобразованный в массив theme.json.
Метод get_block_nodes() возвращает массив блочных узлов в theme.json.
/**
* Пример использования метода get_block_nodes()
*
* @param array $theme_json Преобразованный в массив theme.json.
* @return array Массив блочных узлов в theme.json.
*/
$block_nodes = WP_Theme_JSON::get_block_nodes( $theme_json );
get_block_selectors()
Метод get_block_selectors() класса WP_Theme_JSON возвращает метаданные селекторов для блока.
Метод используется для получения пользовательских селекторов, установленных для блока.
WP_Theme_JSON::get_block_selectors( object $block_type, string $root_selector ): array
В данном примере показано, как использовать метод get_block_selectors() класса WP_Theme_JSON. Метод принимает два обязательных параметра: $block_type (объект типа блока) и $root_selector (корневой селектор блока). Метод возвращает массив пользовательских селекторов, установленных для блока.
$block_type (объект, обязательный): Тип блока.
$root_selector (строка, обязательная): Корневой селектор блока.
Метод get_block_selectors() возвращает массив пользовательских селекторов, установленных для блока.
<?php
/**
* Пример использования метода get_block_selectors()
*/
// Создание объекта типа блока
$block_type = new WP_Block_Type();
// Установка корневого селектора блока
$root_selector = '.my-block';
// Получение пользовательских селекторов для блока
$selectors = WP_Theme_JSON::get_block_selectors( $block_type, $root_selector );
// Вывод пользовательских селекторов
foreach ( $selectors as $selector ) {
echo $selector;
}
?>
В данном примере мы создаем объект типа блока, устанавливаем корневой селектор блока и получаем пользовательские селекторы для блока. Затем мы выводим пользовательские селекторы с помощью цикла foreach.
get_block_styles()
Метод get_block_styles() класса WP_Theme_JSON преобразует каждую секцию стилей в список правил, содержащих стили блоков, которые будут добавлены к таблице стилей. Он используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::get_block_styles( array $style_nodes, array $setting_nodes ): string Метод get_block_styles() принимает два обязательных параметра: $style_nodes (массив узлов со стилями) и $setting_nodes (массив узлов с настройками). Он возвращает новую таблицу стилей в виде строки.
$style_nodes (array) — Обязательный. Узлы со стилями.
$setting_nodes (array) — Обязательный. Узлы с настройками.
Метод get_block_styles() возвращает новую таблицу стилей в виде строки.
/**
* Пример использования метода get_block_styles()
*
* @param array $style_nodes Узлы со стилями.
* @param array $setting_nodes Узлы с настройками.
*
* @return string Новая таблица стилей.
*/
function example_get_block_styles( $style_nodes, $setting_nodes ) {
// Вызов метода get_block_styles() с передачей параметров
$block_styles = WP_Theme_JSON::get_block_styles( $style_nodes, $setting_nodes );
// Вывод результата
echo $block_styles;
}
get_css_variables()
Метод get_css_variables() является частью класса WP_Theme_JSON и используется для преобразования каждого раздела стилей в список правил, которые будут добавлены к таблице стилей. Он принимает узлы с настройками и список источников для обработки.
WP_Theme_JSON::get_css_variables( array $nodes, string[] $origins ): string Метод get_css_variables() принимает два параметра: $nodes (массив узлов с настройками) и $origins (список источников для обработки). Он возвращает новую таблицу стилей в виде строки.
$nodes (обязательный): Массив узлов с настройками.
$origins (обязательный): Список источников для обработки.
Метод get_css_variables() возвращает новую таблицу стилей в виде строки.
/**
* Пример использования метода get_css_variables()
*
* @param array $nodes Массив узлов с настройками.
* @param string[] $origins Список источников для обработки.
*
* @return string Новая таблица стилей.
*/
$css_variables = WP_Theme_JSON::get_css_variables( $nodes, $origins );
get_custom_css()
Метод get_custom_css() класса WP_Theme_JSON возвращает пользовательский CSS для глобальных стилей.
Этот метод используется для получения пользовательского CSS, который был определен в файле theme.json для глобальных стилей темы WordPress.
Метод get_custom_css() обрабатывает структуры, которые соответствуют спецификации theme.json.
WP_Theme_JSON::get_custom_css(): string Этот код используется для вызова метода get_custom_css() класса WP_Theme_JSON и возвращает пользовательский CSS для глобальных стилей.
Пример использования:
// Получение пользовательского CSS для глобальных стилей
$custom_css = WP_Theme_JSON::get_custom_css(); Комментарии к коду:
- Метод
get_custom_css()вызывается статически, без создания экземпляра классаWP_Theme_JSON. - Метод возвращает пользовательский CSS в виде строки.
Метод get_custom_css() возвращает пользовательский CSS для глобальных стилей в виде строки.
get_custom_templates()
Метод get_custom_templates() является частью класса WP_Theme_JSON и предназначен для получения пользовательских шаблонов страниц активной темы.
Данный метод используется для извлечения списка пользовательских шаблонов страниц, которые были созданы в активной теме WordPress. Шаблоны страниц позволяют разработчикам создавать различные макеты и стили для отдельных страниц сайта.
Метод get_custom_templates() возвращает массив, содержащий пользовательские шаблоны страниц активной темы.
WP_Theme_JSON::get_custom_templates(): array Метод get_custom_templates() вызывается статически, без необходимости создания экземпляра класса WP_Theme_JSON. Он возвращает массив, содержащий пользовательские шаблоны страниц активной темы.
Пример использования:
$custom_templates = WP_Theme_JSON::get_custom_templates();
В данном примере переменной $custom_templates будет присвоен массив с пользовательскими шаблонами страниц активной темы.
Метод get_custom_templates() возвращает массив, содержащий пользовательские шаблоны страниц активной темы.
get_data()
Метод get_data() класса WP_Theme_JSON представляет собой функцию, которая обрабатывает структуры, соответствующие спецификации theme.json.
Он возвращает действительный theme.json, предоставленный темой.
Метод get_data() используется для получения данных из theme.json файла темы WordPress.
WP_Theme_JSON::get_data(); Этот код возвращает массив данных из theme.json файла текущей темы WordPress.
Комментарии к коду:
- WP_Theme_JSON — имя класса, в котором определен метод.
- get_data() — имя метода, который вызывается.
- array — тип данных, который возвращает метод.
Метод get_data() возвращает массив данных из theme.json файла текущей темы WordPress.
get_default_slugs()
Метод get_default_slugs() возвращает список стандартных слагов для всех пресетов в виде ассоциативного массива, где ключами являются пути к пресетам, а значениями — список слагов.
Этот метод является частью класса WP_Theme_JSON, который инкапсулирует обработку структур, соответствующих спецификации theme.json.
WP_Theme_JSON::get_default_slugs( array $data, array $node_path ): array
Метод get_default_slugs() принимает два обязательных параметра:
$data(array) — Структура, похожая наtheme.json.$node_path(array) — Путь для анализа. По умолчанию — ‘settings’.
Метод get_default_slugs() возвращает массив.
<?php
// Пример использования метода get_default_slugs()
$data = array(
// структура theme.json
);
$node_path = array(
// путь для анализа
);
$default_slugs = WP_Theme_JSON::get_default_slugs( $data, $node_path );
?>
В данном примере мы используем метод get_default_slugs() для получения списка стандартных слагов для заданной структуры theme.json и пути $node_path.
get_element_class_name()
Метод get_element_class_name() класса WP_Theme_JSON возвращает имя класса по имени элемента.
Класс WP_Theme_JSON инкапсулирует обработку структур, соответствующих спецификации theme.json.
WP_Theme_JSON::get_element_class_name( string $element ): string Метод get_element_class_name() принимает один обязательный параметр:
$element(string) — Имя элемента.
Метод get_element_class_name() принимает следующий параметр:
$element(string) — Обязательный. Имя элемента.
Метод get_element_class_name() возвращает имя класса в виде строки.
/**
* Получает имя класса по имени элемента.
*
* @param string $element Имя элемента.
* @return string Имя класса.
*/
$element_class_name = WP_Theme_JSON::get_element_class_name( $element );
get_feature_declarations_for_node()
Метод get_feature_declarations_for_node() генерирует стилевые объявления для особенностей узла, таких как цвет, граница, типографика и т.д., которые имеют пользовательские селекторы в метаданных связанного блока.
Он используется для генерации стилей, которые будут применяться к узлу блока или его вариации в соответствии с указанными пользовательскими селекторами.
WP_Theme_JSON::get_feature_declarations_for_node( object $metadata, object $node ): array Метод get_feature_declarations_for_node() принимает два обязательных параметра:
$metadata(объект) — Метаданные связанного блока, содержащие селекторы.$node(объект) — Объединенный узел theme.json для блока или вариации.
$metadata (объект) — Обязательный. Метаданные связанного блока, содержащие селекторы.
$node (объект) — Обязательный. Объединенный узел theme.json для блока или вариации.
Метод get_feature_declarations_for_node() возвращает массив стилевых объявлений для особенностей узла с пользовательскими селекторами.
<code>$metadata</code> = (object) array(
'selectors' => array(
'.my-block' => array(
'color' => 'red',
'font-size' => '16px',
),
),
);
<code>$node</code> = (object) array(
'features' => array(
'color' => 'blue',
'font-size' => '14px',
),
);
<code>$declarations</code> = WP_Theme_JSON::get_feature_declarations_for_node( <code>$metadata</code>, <code>$node</code> );
В данном примере создается объект $metadata, содержащий пользовательские селекторы для блока. Затем создается объект $node, содержащий особенности блока. Метод get_feature_declarations_for_node() вызывается с этими параметрами, и результат сохраняется в переменной $declarations.
get_from_editor_settings()
Метод get_from_editor_settings() класса WP_Theme_JSON преобразует переданные настройки редактора в формате add_theme_support в формат theme.json. Он используется для преобразования конфигурации редактора в соответствии с схемой theme.json.
WP_Theme_JSON::get_from_editor_settings( array $settings ): array Метод get_from_editor_settings() принимает один обязательный параметр $settings, который представляет собой существующие настройки редактора. Он возвращает конфигурацию, соответствующую схеме theme.json.
$settings (array) — Обязательный. Существующие настройки редактора.
Метод get_from_editor_settings() возвращает массив, представляющий конфигурацию, соответствующую схеме theme.json.
/**
* Пример использования метода get_from_editor_settings()
*/
// Переданные настройки редактора
$editor_settings = array(
'colors' => array(
'text' => '#000000',
'background' => '#ffffff',
),
'fontSizes' => array(
'small' => 12,
'medium' => 16,
'large' => 20,
),
);
// Получение конфигурации в формате theme.json
$theme_json_config = WP_Theme_JSON::get_from_editor_settings( $editor_settings );
// Вывод конфигурации
var_dump( $theme_json_config );
В данном примере мы передаем настройки редактора в метод get_from_editor_settings() и получаем конфигурацию в формате theme.json. Затем мы выводим полученную конфигурацию с помощью функции var_dump().
get_layout_styles()
Метод get_layout_styles() класса WP_Theme_JSON используется для получения CSS-правил макета для определенного блока из определений макета в файле theme.json. Он обрабатывает структуры, которые соответствуют спецификации theme.json.
Метод получает макетные стили для блока из определений макета в файле theme.json. Он возвращает строку, содержащую CSS-правила макета для блока.
WP_Theme_JSON::get_layout_styles( array $block_metadata ): string Метод get_layout_styles() принимает один параметр:
$block_metadata(обязательный): Массив с метаданными о блоке, для которого нужно получить стили.
$block_metadata (array) — Обязательный. Метаданные о блоке, для которого нужно получить стили.
Метод get_layout_styles() возвращает строку, содержащую CSS-правила макета для блока.
<?php
// Массив с метаданными о блоке
$block_metadata = array(
'name' => 'my_block',
'version' => '1.0',
// Другие метаданные о блоке
);
// Получение CSS-правил макета для блока
$layout_styles = WP_Theme_JSON::get_layout_styles( $block_metadata );
// Вывод CSS-правил макета
echo $layout_styles;
?> get_merged_preset_by_slug()
Метод get_merged_preset_by_slug() является частью класса WP_Theme_JSON и предназначен для обработки структур, соответствующих спецификации theme.json. Он принимает массив пресетов, сгруппированных по источнику и ключу значения пресета, и возвращает массив, где каждый ключ является слагом пресета, а значение — его значением.
WP_Theme_JSON::get_merged_preset_by_slug( array $preset_per_origin, string $value_key ): array
Метод get_merged_preset_by_slug() принимает два обязательных параметра:
$preset_per_origin(array) — Массив пресетов, сгруппированных по источнику.$value_key(string) — Свойство пресета, содержащее его значение.
Метод get_merged_preset_by_slug() возвращает массив пресетов, где каждый ключ является слагом пресета, а значение — его значением.
<?php
// Массив пресетов
$preset_per_origin = array(
'origin1' => array(
'preset1' => array(
'value' => 'preset1_value'
),
'preset2' => array(
'value' => 'preset2_value'
)
),
'origin2' => array(
'preset3' => array(
'value' => 'preset3_value'
),
'preset4' => array(
'value' => 'preset4_value'
)
)
);
// Ключ свойства пресета
$value_key = 'value';
// Получение массива пресетов по слагу
$presets = WP_Theme_JSON::get_merged_preset_by_slug( $preset_per_origin, $value_key );
// Вывод результата
var_dump( $presets );
?>
В данном примере мы имеем массив пресетов, сгруппированных по источнику и ключу значения пресета. Мы передаем этот массив и ключ свойства пресета в метод get_merged_preset_by_slug(). Метод обрабатывает массив и возвращает новый массив, где каждый ключ является слагом пресета, а значение — его значением. Результат выводится с помощью функции var_dump().
get_metadata_boolean()
Метод get_metadata_boolean() является частью класса WP_Theme_JSON и предназначен для получения значения метаданных, которые могут быть либо логическими значениями (булевыми), либо путями к логическим значениям. Метод позволяет извлекать значение метаданных из указанного массива данных.
WP_Theme_JSON::get_metadata_boolean( array $data, bool|array $path, bool $default_value = false ): bool Метод get_metadata_boolean() принимает следующие параметры:
$data(обязательный) — данные, которые необходимо проанализировать.$path(обязательный) — булево значение или путь к булевому значению.$default_value(необязательный) — значение по умолчанию, если указанный путь отсутствует. По умолчанию:false.
$data (array) — Обязательный. Данные, которые необходимо проанализировать.
$path (bool|array) — Обязательный. Булево значение или путь к булевому значению.
$default_value (bool) — Необязательный. Значение по умолчанию, если указанный путь отсутствует. По умолчанию: false.
Метод get_metadata_boolean() возвращает значение булевых метаданных.
<code>$data = array(
'key1' => true,
'key2' => array(
'subkey1' => false,
'subkey2' => true
)
);
$path = array('key2', 'subkey2');
$result = WP_Theme_JSON::get_metadata_boolean($data, $path, false);
// Результат: true</code> get_name_from_defaults()
Метод get_name_from_defaults() класса WP_Theme_JSON используется для получения имени предустановки по заданному слагу. Он работает путем проверки предустановок по умолчанию в файле theme.json и возвращения имени предустановки, если слаг совпадает с одним из них.
WP_Theme_JSON::get_name_from_defaults( string $slug, array $base_path ): string|null Метод get_name_from_defaults() принимает два параметра:
$slug(обязательный) — слаг, для которого мы хотим найти совпадение с предустановкой по умолчанию.$base_path(обязательный) — путь для проверки. По умолчанию это ‘settings’.
$slug (string) — Обязательный. Слаг, для которого мы хотим найти совпадение с предустановкой по умолчанию.
$base_path (array) — Обязательный. Путь для проверки. По умолчанию это ‘settings’.
Метод get_name_from_defaults() возвращает строку (string) с именем предустановки, если совпадение найдено, или null, если совпадение не найдено.
<?php
$slug = 'my_preset';
$base_path = 'settings';
$name = WP_Theme_JSON::get_name_from_defaults( $slug, $base_path );
if ( $name ) {
echo 'Найдено совпадение с предустановкой: ' . $name;
} else {
echo 'Совпадение с предустановкой не найдено.';
}
?> В этом примере мы передаем слаг 'my_preset' и путь 'settings' в метод get_name_from_defaults(). Затем мы проверяем, найдено ли совпадение с предустановкой по умолчанию, и выводим соответствующее сообщение.
get_patterns()
Метод get_patterns() является частью класса WP_Theme_JSON и используется для получения списка шаблонов (по слагам), которые должны быть зарегистрированы из Pattern Directory (каталога шаблонов) текущей темы.
Метод работает следующим образом:
- Получает текущую тему WordPress.
- Проверяет, есть ли у темы файл
theme.json. - Если файл
theme.jsonсуществует, то он парсится и получается объект, соответствующий структуре файла. - Из объекта структуры файла
theme.jsonизвлекается список шаблонов (по слагам), которые должны быть зарегистрированы. - Список шаблонов возвращается в виде массива строк (слагов).
WP_Theme_JSON::get_patterns(): string[] Метод get_patterns() вызывается статически, без создания экземпляра класса WP_Theme_JSON. Он не принимает никаких аргументов.
Пример использования:
$patterns = WP_Theme_JSON::get_patterns(); В данном примере переменной $patterns будет присвоен массив строк (слагов) шаблонов, которые должны быть зарегистрированы из Pattern Directory текущей темы.
Метод get_patterns() возвращает массив строк (слагов) шаблонов, которые должны быть зарегистрированы из Pattern Directory текущей темы.
Тип возвращаемого значения: string[].
get_preset_classes()
Метод get_preset_classes() класса WP_Theme_JSON создает новые наборы правил в виде классов для каждого предустановленного значения, таких как:
- background-color
- color
- font-family
- font-size
- font-weight
- line-height
- text-align
Этот метод используется для обработки структур, которые соответствуют спецификации theme.json.
WP_Theme_JSON::get_preset_classes( array $setting_nodes, string[] $origins ): string Метод get_preset_classes() принимает два обязательных параметра:
$setting_nodes— узлы с настройками, необходимые для создания наборов правил.$origins— список источников, из которых нужно обрабатывать предустановленные значения.
$setting_nodes(array) — Узлы с настройками. Обязательный параметр.$origins(string[]) — Список источников, из которых нужно обрабатывать предустановленные значения. Обязательный параметр.
Метод get_preset_classes() возвращает новую таблицу стилей в виде строки.
<?php
$setting_nodes = array(
'background-color' => array(
'value' => '#ffffff',
'selectors' => array(
'body',
'.site-header'
)
),
'color' => array(
'value' => '#000000',
'selectors' => array(
'body',
'.site-header'
)
),
'font-family' => array(
'value' => 'Arial, sans-serif',
'selectors' => array(
'body',
'.site-header'
)
)
);
$origins = array( 'theme', 'parent-theme' );
$stylesheet = WP_Theme_JSON::get_preset_classes( $setting_nodes, $origins );
echo $stylesheet;
?> В приведенном выше примере создается новая таблица стилей на основе предустановленных значений, заданных в $setting_nodes. Источники для обработки предустановленных значений указываются в $origins. Результат выводится с помощью echo.
get_property_value()
Метод get_property_value() класса WP_Theme_JSON возвращает значение свойства стиля для указанного пути.
WP_Theme_JSON::get_property_value( array $styles, array $path, array $theme_json = null ): string|array Метод get_property_value() принимает три параметра:
$styles(обязательный) — поддерево стилей.$path(обязательный) — путь к свойству, которое нужно обработать.$theme_json(необязательный) — массив темы JSON. По умолчанию:null.
$styles (array) — Обязательный. Поддерево стилей.
$path (array) — Обязательный. Какое свойство обработать.
$theme_json (array) — Необязательный. Массив темы JSON. По умолчанию: null.
Метод get_property_value() возвращает значение свойства стиля в виде строки или массива.
<?php
$styles = array(
'color' => 'red',
'font-size' => '16px',
);
$path = array( 'color' );
$theme_json = array(
'color' => 'blue',
'font-size' => '14px',
);
$value = WP_Theme_JSON::get_property_value( $styles, $path, $theme_json );
// Выведет 'blue'
echo $value;
?> get_raw_data()
Метод get_raw_data() класса WP_Theme_JSON возвращает необработанные данные, которые соответствуют спецификации theme.json. Он используется для получения данных из файла theme.json темы WordPress.
WP_Theme_JSON::get_raw_data(): array
Метод get_raw_data() вызывается статически, без создания экземпляра класса WP_Theme_JSON. Он возвращает массив, содержащий необработанные данные из файла theme.json.
Метод get_raw_data() возвращает массив с необработанными данными из файла theme.json. Эти данные представляют собой необработанные структуры, которые соответствуют спецификации theme.json.
get_root_layout_rules()
Метод get_root_layout_rules() является частью класса WP_Theme_JSON и предназначен для обработки структур, соответствующих спецификации theme.json. Он выводит CSS-правила для расположения элементов на корневом уровне.
WP_Theme_JSON::get_root_layout_rules( string $selector, array $block_metadata ): string Метод get_root_layout_rules() принимает два обязательных параметра: $selector (строка) — селектор корневого узла, и $block_metadata (массив) — метаданные для корневого блока.
$selector (строка) — Обязательный параметр. Селектор корневого узла.
$block_metadata (массив) — Обязательный параметр. Метаданные для корневого блока.
Метод get_root_layout_rules() возвращает строку с дополнительными CSS-правилами для корневого узла.
<code><?php
// Пример использования метода get_root_layout_rules()
$selector = '.site-container'; // Селектор корневого узла
$block_metadata = array(
'align' => 'center',
'size' => 'full',
'spacing' => array(
'top' => '20px',
'bottom' => '20px',
'left' => '10px',
'right' => '10px',
),
); // Метаданные для корневого блока
$root_layout_rules = WP_Theme_JSON::get_root_layout_rules( $selector, $block_metadata );
echo $root_layout_rules;
?> В данном примере мы используем метод get_root_layout_rules() для получения дополнительных CSS-правил для корневого узла с селектором .site-container и заданными метаданными для корневого блока. Результат выводится с помощью функции echo.
get_settings()
Метод get_settings() класса WP_Theme_JSON возвращает существующие настройки для каждого блока. Он используется для получения настроек блоков, которые определены в файле theme.json темы.
WP_Theme_JSON::get_settings(): array
Метод get_settings() возвращает массив настроек для каждого блока.
Пример использования:
$theme_json = new WP_Theme_JSON();
$settings = $theme_json->get_settings();
В этом примере создается новый экземпляр класса WP_Theme_JSON и вызывается метод get_settings() для получения настроек блоков.
Метод get_settings() возвращает массив настроек для каждого блока. Каждый элемент массива содержит настройки для конкретного блока.
get_settings_slugs()
Метод get_settings_slugs() класса WP_Theme_JSON возвращает массив с названиями настроек (slug) из заданных настроек темы.
WP_Theme_JSON::get_settings_slugs( array $settings, array $preset_metadata, string[] $origins = null ): array Метод get_settings_slugs() принимает три параметра:
$settings(обязательный) — массив с настройками, которые нужно обработать.$preset_metadata(обязательный) — одно из значенийPRESETS_METADATA.$origins(необязательный) — список источников для обработки. По умолчанию:null.
$settings(array) — Обязательный. Настройки, которые нужно обработать.$preset_metadata(array) — Обязательный. Одно из значенийPRESETS_METADATA.$origins(string[]) — Необязательный. Список источников для обработки. По умолчанию:null.
Метод get_settings_slugs() возвращает массив настроек, где ключ и значение являются названием настройки (slug).
<code>// Пример использования метода get_settings_slugs()
$settings = array(
'color' => '#ffffff',
'font-size' => '16px',
'background-image' => 'url("image.jpg")'
);
$preset_metadata = array(
'color' => array(
'default' => '#000000',
'type' => 'color',
'label' => 'Text Color'
),
'font-size' => array(
'default' => '14px',
'type' => 'text',
'label' => 'Font Size'
),
'background-image' => array(
'default' => '',
'type' => 'image',
'label' => 'Background Image'
)
);
$slugs = WP_Theme_JSON::get_settings_slugs($settings, $preset_metadata);
// Результат: $slugs = array('color', 'font-size', 'background-image'); get_settings_values_by_slug()
Метод get_settings_values_by_slug() класса WP_Theme_JSON используется для получения значений предустановленных настроек, сгруппированных по их идентификаторам (slug). Он обрабатывает настройки и метаданные, соответствующие спецификации theme.json.
WP_Theme_JSON::get_settings_values_by_slug( array $settings, array $preset_metadata, string[] $origins ): array
Метод get_settings_values_by_slug() принимает три параметра:
$settings(обязательный) — настройки, которые необходимо обработать;$preset_metadata(обязательный) — одно из значений PRESETS_METADATA;$origins(обязательный) — список источников для обработки.
Метод возвращает массив предустановленных значений, где каждый ключ является идентификатором (slug), а каждое значение — предустановленным значением.
/**
* Получает значения предустановленных настроек по идентификаторам (slug).
*
* @param array $settings Настройки, которые необходимо обработать.
* @param array $preset_metadata Одно из значений PRESETS_METADATA.
* @param string[] $origins Список источников для обработки.
*
* @return array Массив предустановленных значений, где каждый ключ является идентификатором (slug), а каждое значение - предустановленным значением.
*/
public static function get_settings_values_by_slug( array $settings, array $preset_metadata, string[] $origins ): array {
// Логика обработки настроек и метаданных
// ...
return $presets;
}
get_setting_nodes()
Метод get_setting_nodes() класса WP_Theme_JSON используется для построения метаданных узлов настроек. Он принимает дерево настроек в формате theme.json и возвращает массив метаданных узлов настроек.
WP_Theme_JSON::get_setting_nodes( array $theme_json, array $selectors = array() ): array Метод get_setting_nodes() принимает два параметра: $theme_json (обязательный) и $selectors (необязательный). Параметр $theme_json представляет собой дерево настроек, из которого нужно извлечь узлы настроек. Параметр $selectors представляет собой список селекторов для каждого блока. По умолчанию он равен пустому массиву.
$theme_json(array) — Обязательный. Дерево настроек, из которого нужно извлечь узлы настроек.$selectors(array) — Необязательный. Список селекторов для каждого блока. По умолчанию:array().
Метод get_setting_nodes() возвращает массив метаданных узлов настроек.
<?php
/**
* Пример использования метода get_setting_nodes()
*
* @param array $theme_json Дерево настроек.
* @param array $selectors Список селекторов.
* @return array Массив метаданных узлов настроек.
*/
$theme_json = array(
// Дерево настроек
);
$selectors = array(
// Список селекторов
);
$setting_nodes = WP_Theme_JSON::get_setting_nodes( $theme_json, $selectors );
?> get_stylesheet()
Метод get_stylesheet() возвращает таблицу стилей, полученную в результате обработки структуры theme.json, представленной данным объектом. Он используется для получения таблицы стилей, которая содержит все стили, определенные в файле theme.json.
WP_Theme_JSON::get_stylesheet( string[] $types = array('variables', 'styles', 'presets'), string[] $origins = null, array $options = array() ): string Метод get_stylesheet() принимает следующие параметры:
$types(string[]) — Опционально. Типы стилей для загрузки. По умолчанию загружаются все типы. Допустимые значения: ‘variables’ (только пользовательские CSS-переменные для пресетов и пользовательских), ‘styles’ (только раздел стилей в theme.json), ‘presets’ (только классы для пресетов). По умолчанию:array('variables', 'styles', 'presets').$origins(string[]) — Опционально. Список источников для включения. По умолчанию включаются все допустимые источники. По умолчанию:null.$options(array) — Опционально. Массив опций, используемых внутренне. В настоящее время поддерживается только опция ‘scope’, которая гарантирует, что все стили применяются к заданному селектору, и ‘root_selector’, который перезаписывает и принудительно задает селектор для корневого узла. По умолчанию:array().
Метод get_stylesheet() возвращает строку, содержащую полученную таблицу стилей.
<?php
// Получение таблицы стилей с заданными параметрами
$stylesheet = WP_Theme_JSON::get_stylesheet(
array('variables', 'styles', 'presets'), // Загрузить все типы стилей
null, // Включить все допустимые источники
array() // Внутренние опции (пустой массив)
);
// Вывод результата
echo $stylesheet;
?> get_styles_block_nodes()
Метод get_styles_block_nodes() является публичным вспомогательным методом класса WP_Theme_JSON. Он используется для получения блочных узлов из файла theme.json.
Метод принимает на вход путь к файлу theme.json и возвращает массив блочных узлов, которые содержатся в этом файле.
WP_Theme_JSON::get_styles_block_nodes(): array Метод get_styles_block_nodes() не принимает никаких аргументов, он вызывается статически через класс WP_Theme_JSON.
Пример использования:
$block_nodes = WP_Theme_JSON::get_styles_block_nodes(); В этом примере метод get_styles_block_nodes() вызывается без аргументов и возвращает массив блочных узлов из файла theme.json.
Метод get_styles_block_nodes() возвращает массив блочных узлов, которые содержатся в файле theme.json.
get_styles_for_block()
Метод get_styles_for_block() класса WP_Theme_JSON используется для получения CSS правил для определенного блока из файла theme.json. Он обрабатывает структуры, которые соответствуют спецификации theme.json.
WP_Theme_JSON::get_styles_for_block( array $block_metadata ): string Метод get_styles_for_block() принимает один обязательный параметр $block_metadata — метаданные о блоке, для которого нужно получить стили. Метод возвращает строку — стили для блока.
$block_metadata (array) — Обязательный. Метаданные о блоке, для которого нужно получить стили.
Метод get_styles_for_block() возвращает строку — стили для блока.
<?php
// Метаданные о блоке
$block_metadata = array(
'name' => 'my-block',
'version' => '1.0.0',
'styles' => array(
'editor' => 'path/to/editor-styles.css',
'frontend' => 'path/to/frontend-styles.css',
),
);
// Получение стилей для блока
$styles = WP_Theme_JSON::get_styles_for_block( $block_metadata );
// Вывод стилей
echo $styles;
?> В данном примере мы создаем массив $block_metadata с метаданными о блоке, включая пути к файлам стилей для редактора и фронтенда. Затем мы вызываем метод get_styles_for_block() с этими метаданными и сохраняем результат в переменную $styles. Наконец, мы выводим полученные стили с помощью echo.
get_style_nodes()
Метод get_style_nodes() класса WP_Theme_JSON используется для построения метаданных для узлов стилей в соответствии со спецификацией theme.json.
WP_Theme_JSON::get_style_nodes( array $theme_json, array $selectors = array() ): array Метод get_style_nodes() принимает два параметра:
$theme_json(обязательный) — дерево, из которого нужно извлечь узлы стилей.$selectors(необязательный) — список селекторов для каждого блока. По умолчанию:array().
$theme_json (array) — Обязательный. Дерево, из которого нужно извлечь узлы стилей.
$selectors (array) — Необязательный. Список селекторов для каждого блока. По умолчанию: array().
Метод get_style_nodes() возвращает массив метаданных узлов стилей.
<?php
// Построение метаданных для узлов стилей
$theme_json = array(
// ... дерево theme.json ...
);
$selectors = array(
// ... список селекторов ...
);
$style_nodes = WP_Theme_JSON::get_style_nodes( $theme_json, $selectors );
// Использование метаданных узлов стилей
foreach ( $style_nodes as $node ) {
// ... обработка узла стиля ...
}
?> get_svg_filters()
Метод get_svg_filters() является частью класса WP_Theme_JSON и предназначен для преобразования всех предустановленных фильтров (duotone) в формат SVG.
Данный метод используется для обработки структур, соответствующих спецификации theme.json, и преобразует все фильтры в формат SVG.
WP_Theme_JSON::get_svg_filters( array $origins ): string Метод get_svg_filters() принимает один обязательный параметр:
$origins(array) — Список источников для обработки.
$origins (array) — Обязательный параметр. Список источников для обработки.
Метод get_svg_filters() возвращает строку, содержащую SVG фильтры.
<?php
// Пример использования метода get_svg_filters()
$origins = array(
'filter1',
'filter2',
'filter3'
);
$svg_filters = WP_Theme_JSON::get_svg_filters( $origins );
echo $svg_filters;
?> В данном примере мы создаем массив $origins, содержащий источники для обработки. Затем мы вызываем метод get_svg_filters() класса WP_Theme_JSON и передаем ему этот массив в качестве аргумента. Результатом работы метода будет строка, содержащая SVG фильтры, которую мы выводим с помощью функции echo.
get_template_parts()
Метод get_template_parts() является частью класса WP_Theme_JSON, который инкапсулирует обработку структур, соответствующих спецификации theme.json. Он предназначен для получения данных о частях шаблона активной темы.
Метод get_template_parts() возвращает массив данных о частях шаблона активной темы.
WP_Theme_JSON::get_template_parts(): array Метод get_template_parts() вызывается статически, без создания экземпляра класса WP_Theme_JSON. Он возвращает массив данных о частях шаблона активной темы.
Пример использования:
$template_parts = WP_Theme_JSON::get_template_parts(); В данном примере переменной $template_parts будет присвоен массив данных о частях шаблона активной темы.
Метод get_template_parts() возвращает массив данных о частях шаблона активной темы.
has_properties()
Метод has_properties() проверяет, содержит ли метаданные ключ с именем «properties».
WP_Theme_JSON::has_properties( array $metadata ): bool Метод has_properties() принимает один обязательный параметр $metadata — описание свойства стиля. Возвращает булево значение — true, если свойство существует, и false в противном случае.
$metadata (array) (обязательный): Описание свойства стиля.
Метод has_properties() возвращает булево значение. true, если свойство существует, и false в противном случае.
<?php
/**
* Проверяет, содержит ли метаданные ключ с именем "properties".
*
* @param array $metadata Описание свойства стиля.
* @return bool Возвращает true, если свойство существует, и false в противном случае.
*/
$has_properties = WP_Theme_JSON::has_properties( $metadata );
?> is_safe_css_declaration()
Метод is_safe_css_declaration() класса WP_Theme_JSON проверяет, является ли предоставленное пользователем объявление безопасным.
Метод используется для проверки безопасности объявлений CSS, которые могут быть предоставлены пользователем в файле theme.json.
WP_Theme_JSON::is_safe_css_declaration( string $property_name, string $property_value ): bool Метод is_safe_css_declaration() принимает два обязательных параметра:
$property_name— имя свойства в объявлении CSS, например, «color» в «color: red».$property_value— значение свойства в объявлении CSS, например, «red» в «color: red».
Метод возвращает логическое значение (bool), которое указывает, является ли объявление безопасным.
$property_name (string) — Обязательный. Имя свойства в объявлении CSS, например, «color» в «color: red».
$property_value (string) — Обязательный. Значение свойства в объявлении CSS, например, «red» в «color: red».
Метод is_safe_css_declaration() возвращает логическое значение (bool), которое указывает, является ли объявление безопасным.
<?php
// Проверка безопасности объявления CSS
$is_safe = WP_Theme_JSON::is_safe_css_declaration( 'color', 'red' );
if ( $is_safe ) {
echo 'Объявление CSS безопасно.';
} else {
echo 'Объявление CSS небезопасно.';
}
?> maybe_opt_in_into_settings()
Метод maybe_opt_in_into_settings() класса WP_Theme_JSON используется для включения некоторых дополнительных настроек, если тема объявила поддержку.
Этот метод обрабатывает структуры, которые соответствуют спецификации theme.json и вносит изменения в переданную структуру.
WP_Theme_JSON::maybe_opt_in_into_settings( array $theme_json ): array Метод maybe_opt_in_into_settings() принимает один обязательный параметр:
$theme_json(array) — Структураtheme.json, которую нужно изменить.
Метод возвращает измененную структуру theme.json в виде массива.
/**
* Пример использования метода maybe_opt_in_into_settings()
*/
// Создаем экземпляр класса WP_Theme_JSON
$theme_json = new WP_Theme_JSON();
// Задаем структуру theme.json
$theme_json_structure = array(
// ...
);
// Используем метод maybe_opt_in_into_settings()
$modified_theme_json = $theme_json->maybe_opt_in_into_settings( $theme_json_structure );
// Выводим измененную структуру theme.json
var_dump( $modified_theme_json );
В приведенном примере мы создаем экземпляр класса WP_Theme_JSON и задаем структуру theme.json. Затем мы вызываем метод maybe_opt_in_into_settings() и передаем ему структуру theme.json. Результатом работы метода будет измененная структура theme.json, которую мы выводим с помощью функции var_dump().
merge()
Метод merge() класса WP_Theme_JSON используется для объединения новых входящих данных с существующими данными. Он выполняет слияние двух объектов WP_Theme_JSON, где новые данные перезаписывают существующие данные.
WP_Theme_JSON::merge( WP_Theme_JSON $incoming ) Метод merge() принимает один обязательный параметр $incoming, который является объектом WP_Theme_JSON и содержит данные, которые необходимо объединить с текущими данными.
$incoming (обязательный): Объект WP_Theme_JSON с данными, которые необходимо объединить.
/**
* Пример использования метода merge()
*/
// Создание объекта WP_Theme_JSON
$theme_json = new WP_Theme_JSON();
// Создание объекта WP_Theme_JSON с новыми данными
$incoming_data = new WP_Theme_JSON();
// Выполнение слияния данных
$theme_json->merge( $incoming_data );
В приведенном примере создается объект $theme_json класса WP_Theme_JSON. Затем создается объект $incoming_data такого же класса с новыми данными. Метод merge() вызывается на объекте $theme_json с параметром $incoming_data, чтобы объединить новые данные с текущими данными объекта $theme_json.
prepend_to_selector()
Метод prepend_to_selector() класса WP_Theme_JSON предназначен для добавления подселектора к существующему селектору.
Метод работает путем добавления указанного подселектора в начало существующего селектора. Он используется для модификации селекторов, определенных в файле theme.json в теме WordPress.
WP_Theme_JSON::prepend_to_selector( string $selector, string $to_prepend ): string Метод prepend_to_selector() принимает два обязательных параметра: $selector (исходный селектор) и $to_prepend (подселектор, который нужно добавить).
$selector (строка, обязательный): Исходный селектор, к которому нужно добавить подселектор.
$to_prepend (строка, обязательный): Подселектор, который нужно добавить.
Метод prepend_to_selector() возвращает новый селектор в виде строки.
/**
* Пример использования метода prepend_to_selector()
*
* Добавляет подселектор ".sub-selector" к существующему селектору ".main-selector".
* Возвращает новый селектор в виде строки.
*/
$selector = WP_Theme_JSON::prepend_to_selector( '.main-selector', '.sub-selector' );
process_blocks_custom_css()
Метод process_blocks_custom_css() класса WP_Theme_JSON предназначен для обработки CSS-кода с целью применения вложенности.
Метод принимает на вход два обязательных параметра: $css — строка с CSS-кодом, который необходимо обработать, и $selector — строка с селектором, для которого нужно применить вложенность.
После обработки метод возвращает обработанный CSS-код в виде строки.
WP_Theme_JSON::process_blocks_custom_css( string $css, string $selector ): string Пример использования:
<code>use WP_Theme_JSON;</code>
<code>$css = '...';</code>
<code>$selector = '...';</code>
<code>$processed_css = WP_Theme_JSON::process_blocks_custom_css( $css, $selector );</code> В данном примере мы использовали метод process_blocks_custom_css() класса WP_Theme_JSON для обработки CSS-кода $css с применением вложенности для селектора $selector. Результат обработки сохраняем в переменную $processed_css.
$css (string) — Обязательный. CSS-код, который необходимо обработать.
$selector (string) — Обязательный. Селектор, для которого нужно применить вложенность.
Метод process_blocks_custom_css() возвращает обработанный CSS-код в виде строки.
<code>use WP_Theme_JSON;</code>
<code>$css = '...';</code>
<code>$selector = '...';</code>
<code>$processed_css = WP_Theme_JSON::process_blocks_custom_css( $css, $selector );</code> В данном примере мы использовали метод process_blocks_custom_css() класса WP_Theme_JSON для обработки CSS-кода $css с применением вложенности для селектора $selector. Результат обработки сохраняем в переменную $processed_css.
remove_indirect_properties()
Метод remove_indirect_properties() класса WP_Theme_JSON удаляет косвенные свойства из указанного узла и устанавливает их в указанный выходной узел. Он используется для обработки структур, соответствующих спецификации theme.json.
Метод работает следующим образом: он принимает входной узел и выходной узел по ссылке. Затем он проходит по всем свойствам входного узла и проверяет, является ли свойство косвенным. Если свойство косвенное, оно удаляется из входного узла и устанавливается в выходной узел.
WP_Theme_JSON::remove_indirect_properties( array $input, array $output ) $input(array) — Обязательный. Узел для обработки.$output(array) — Обязательный. Обработанный узел. Передается по ссылке.
/**
* Пример использования метода remove_indirect_properties()
*
* @param array $input Узел для обработки.
* @param array $output Обработанный узел. Передается по ссылке.
*/
WP_Theme_JSON::remove_indirect_properties( $input, &$output );
remove_insecure_properties()
Метод remove_insecure_properties() класса WP_Theme_JSON удаляет небезопасные данные из структуры theme.json. Он используется для санитизации структуры и удаления нежелательных или опасных свойств.
WP_Theme_JSON::remove_insecure_properties( array $theme_json ): array Метод remove_insecure_properties() принимает один параметр:
$theme_json(обязательный): Структура, которую необходимо санитизировать.
Метод remove_insecure_properties() возвращает санитизированную структуру в виде массива.
/**
* Пример использования метода remove_insecure_properties()
*/
// Задаем структуру theme.json
$theme_json = array(
"name" => "My Theme",
"version" => "1.0",
"author" => "John Doe",
"insecure_property" => "This is an insecure property"
);
// Санитизируем структуру
$sanitized_theme_json = WP_Theme_JSON::remove_insecure_properties( $theme_json );
// Выводим санитизированную структуру
var_dump( $sanitized_theme_json );
В данном примере мы создаем структуру theme.json с некоторыми свойствами, включая небезопасное свойство insecure_property. Затем мы вызываем метод remove_insecure_properties() и передаем ему эту структуру. Метод удаляет небезопасное свойство и возвращает санитизированную структуру в виде массива. Мы выводим санитизированную структуру с помощью var_dump().
remove_insecure_settings()
Метод remove_insecure_settings() класса WP_Theme_JSON обрабатывает узел настроек и возвращает тот же самый узел без небезопасных настроек. Он используется для удаления настроек, которые могут представлять угрозу безопасности.
WP_Theme_JSON::remove_insecure_settings( array $input ): array Метод remove_insecure_settings() принимает один обязательный параметр $input, который представляет собой узел, который нужно обработать. Метод возвращает обработанный узел в виде массива.
$input (array) — Обязательный. Узел, который нужно обработать.
Метод remove_insecure_settings() возвращает обработанный узел в виде массива.
/**
* Пример использования метода remove_insecure_settings()
*/
$input = array(
'setting1' => 'value1',
'setting2' => 'value2',
'insecure_setting' => 'value3',
);
$result = WP_Theme_JSON::remove_insecure_settings( $input );
// Результат:
// $result = array(
// 'setting1' => 'value1',
// 'setting2' => 'value2',
// );
В приведенном выше примере метод remove_insecure_settings() принимает узел $input, который содержит несколько настроек. Метод обрабатывает узел и возвращает его без небезопасной настройки 'insecure_setting'. Результат сохраняется в переменной $result.
remove_insecure_styles()
Метод remove_insecure_styles() класса WP_Theme_JSON обрабатывает узел стиля и возвращает тот же узел без небезопасных стилей. Он используется для обработки структур, соответствующих спецификации theme.json.
WP_Theme_JSON::remove_insecure_styles( array $input ): array Метод remove_insecure_styles() принимает входной параметр $input в виде массива и возвращает массив.
$input (array) (обязательный): Узел, который нужно обработать.
Метод remove_insecure_styles() возвращает массив.
<?php
/**
* Пример использования метода remove_insecure_styles()
*
* @param array $input Узел, который нужно обработать.
* @return array Обработанный узел.
*/
$input = array(
'style' => 'background-color: red; font-size: 20px;',
'script' => 'alert("Hello, World!");',
);
$result = WP_Theme_JSON::remove_insecure_styles( $input );
?> remove_keys_not_in_schema()
Метод remove_keys_not_in_schema() класса WP_Theme_JSON используется для удаления ключей, которые отсутствуют в схеме, из заданного дерева.
Данный метод работает следующим образом: для заданного дерева удаляются все ключи, которые не присутствуют в схеме. Это позволяет обеспечить соответствие дерева заданной схеме.
WP_Theme_JSON::remove_keys_not_in_schema( array $tree, array $schema ): array Метод remove_keys_not_in_schema() принимает два обязательных параметра:
$tree(array) — Входные данные для обработки.$schema(array) — Схема, к которой нужно придерживаться.
Метод возвращает измененное дерево $tree в виде массива.
/**
* Пример использования метода remove_keys_not_in_schema()
*
* @param array $tree Входные данные для обработки.
* @param array $schema Схема, к которой нужно придерживаться.
*
* @return array Измененное дерево $tree.
*/
$tree = WP_Theme_JSON::remove_keys_not_in_schema( $tree, $schema );
replace_slug_in_string()
Метод replace_slug_in_string() класса WP_Theme_JSON преобразует слаг в CSS-свойство пользовательского стиля.
WP_Theme_JSON::replace_slug_in_string( string $input, string $slug ): string Метод replace_slug_in_string() принимает два обязательных параметра: $input (строка для замены) и $slug (значение слага, используемое для создания пользовательского свойства).
$input (string) — Обязательный. Строка для замены.
$slug (string) — Обязательный. Значение слага, используемое для создания пользовательского свойства.
Метод replace_slug_in_string() возвращает CSS-свойство пользовательского стиля. Например, --wp--preset--color--black.
<?php
// Пример использования метода replace_slug_in_string()
$input = 'background-color: {{color.black}};';
$slug = 'color-black';
$custom_property = WP_Theme_JSON::replace_slug_in_string( $input, $slug );
// Результат: $custom_property = 'background-color: var(--wp--preset--color--black);';
?> resolve_custom_css_format()
Метод resolve_custom_css_format() класса WP_Theme_JSON преобразует внутреннее представление переменных в представление CSS для заданного дерева.
Данный метод используется для конвертации внутреннего представления переменных в формате, соответствующему CSS, для дальнейшего использования в теме WordPress.
WP_Theme_JSON::resolve_custom_css_format( array $tree ): array Метод resolve_custom_css_format() принимает один обязательный параметр:
$tree(array) — Входные данные для обработки.
Метод resolve_custom_css_format() возвращает измененное дерево $tree в формате массива.
<code>// Пример использования метода resolve_custom_css_format()</code>
<code>$tree = array(
'color' => array(
'primary' => 'red',
'secondary' => 'blue'
),
'font-size' => '16px'
);
$result = WP_Theme_JSON::resolve_custom_css_format( $tree );
// Результат:
// $result = array(
// 'color' => array(
// 'primary' => 'color: red;',
// 'secondary' => 'color: blue;'
// ),
// 'font-size' => 'font-size: 16px;'
// );</code> resolve_variables()
Метод resolve_variables() класса WP_Theme_JSON используется для разрешения значений CSS переменных в заданных стилях. Он принимает объект WP_Theme_JSON в качестве параметра и возвращает тот же объект с разрешенными переменными.
WP_Theme_JSON::resolve_variables( WP_Theme_JSON $theme_json ): WP_Theme_JSON Метод resolve_variables() вызывается статически, используя имя класса WP_Theme_JSON. Он принимает объект $theme_json класса WP_Theme_JSON в качестве обязательного параметра. Метод возвращает тот же объект $theme_json с разрешенными переменными.
$theme_json (обязательный): Объект класса WP_Theme_JSON, содержащий данные JSON темы.
Метод resolve_variables() возвращает объект $theme_json с разрешенными переменными.
<code>$theme_json = new WP_Theme_JSON();
$theme_json->set_styles( $styles ); // Установка стилей в объект $theme_json
$theme_json = WP_Theme_JSON::resolve_variables( $theme_json ); // Разрешение переменных в стилях
// $theme_json теперь содержит разрешенные переменные в стилях
sanitize()
Метод sanitize() класса WP_Theme_JSON предназначен для санитизации входных данных в соответствии со схемами.
WP_Theme_JSON::sanitize( array $input, array $valid_block_names, array $valid_element_names, array $valid_variations ): array Метод sanitize() принимает четыре обязательных параметра:
$input(array) — Структура, которую необходимо санитизировать.$valid_block_names(array) — Список допустимых имен блоков.$valid_element_names(array) — Список допустимых имен элементов.$valid_variations(array) — Список допустимых вариаций для каждого блока.
$input (array) — Обязательный. Структура, которую необходимо санитизировать.
$valid_block_names (array) — Обязательный. Список допустимых имен блоков.
$valid_element_names (array) — Обязательный. Список допустимых имен элементов.
$valid_variations (array) — Обязательный. Список допустимых вариаций для каждого блока.
Метод sanitize() возвращает санитизированный вывод в виде массива.
<code>$input = array(
// Входные данные для санитизации
);
$valid_block_names = array(
// Список допустимых имен блоков
);
$valid_element_names = array(
// Список допустимых имен элементов
);
$valid_variations = array(
// Список допустимых вариаций для каждого блока
);
$sanitized_output = WP_Theme_JSON::sanitize( $input, $valid_block_names, $valid_element_names, $valid_variations );
// Обработка санитизированного вывода
В приведенном выше примере кода мы создаем массив $input с входными данными для санитизации. Затем мы создаем списки допустимых имен блоков, элементов и вариаций. После этого мы вызываем метод sanitize() класса WP_Theme_JSON с указанными параметрами и сохраняем санитизированный вывод в переменную $sanitized_output. Далее мы можем обрабатывать полученный санитизированный вывод.
scope_selector()
Метод scope_selector() класса WP_Theme_JSON используется для ограничения области видимости селектора с помощью другого селектора. Этот метод работает похожим образом на вложенность SCSS, за исключением оператора &, который не поддерживается.
WP_Theme_JSON::scope_selector( string $scope, string $selector ): string Метод scope_selector() принимает два обязательных параметра: $scope — селектор, к которому нужно ограничить область видимости, и $selector — исходный селектор. Метод возвращает строку — ограниченный селектор.
$scope (string) — Обязательный. Селектор, к которому нужно ограничить область видимости.
$selector (string) — Обязательный. Исходный селектор.
Метод scope_selector() возвращает строку — ограниченный селектор.
<code>$scoped_selector = WP_Theme_JSON::scope_selector( $scope, $selector );</code> В данном примере переменная $scoped_selector будет содержать ограниченный селектор, полученный с помощью метода scope_selector().
set_spacing_sizes()
Метод set_spacing_sizes() класса WP_Theme_JSON устанавливает массив spacingSizes на основе значений spacingScale из файла theme.json. Он используется для определения размеров отступов в теме WordPress.
WP_Theme_JSON::set_spacing_sizes(): null|void Этот метод не возвращает никакого значения (null или void).
Метод set_spacing_sizes() не возвращает никакого значения (null или void).
should_override_preset()
Метод should_override_preset() класса WP_Theme_JSON определяет, должен ли пресет быть переопределен или нет. Этот метод был объявлен устаревшим и рекомендуется использовать метод get_metadata_boolean вместо него.
Метод работает путем проверки данных пресета и возвращения булевого значения, указывающего, следует ли переопределить пресет или нет. Он используется для определения, должны ли пресеты быть заменены настройками из theme.json.
WP_Theme_JSON::should_override_preset( array $theme_json, array $path, bool|array $override ): boolean
Метод should_override_preset() принимает три параметра: $theme_json, $path и $override. Он возвращает булево значение.
$theme_json(обязательный): Структура, похожая наtheme.json, которую нужно проверить.$path(обязательный): Путь для проверки.$override(обязательный): Данные для вычисления, должен ли пресет быть переопределен.
Метод should_override_preset() возвращает булево значение, указывающее, следует ли переопределить пресет или нет.
<?php
/**
* Пример использования метода should_override_preset()
*
* @param array $theme_json The theme.json like structure to inspect.
* @param array $path Path to inspect.
* @param bool|array $override Data to compute whether to override the preset.
*
* @return boolean
*/
$should_override = WP_Theme_JSON::should_override_preset( $theme_json, $path, $override );
?>
to_ruleset()
Метод to_ruleset() класса WP_Theme_JSON используется для создания соответствующего набора правил CSS на основе заданного селектора и списка объявлений.
Данный метод принимает два обязательных параметра: селектор ($selector) и список объявлений ($declarations). Он создает CSS-правило, состоящее из селектора и списка объявлений, и возвращает его в виде строки.
WP_Theme_JSON::to_ruleset( string $selector, array $declarations ): string Метод to_ruleset() принимает два параметра: селектор ($selector) и список объявлений ($declarations). Он возвращает созданное CSS-правило в виде строки.
$selector (string) — Обязательный. CSS-селектор.
$declarations (array) — Обязательный. Список объявлений.
Метод to_ruleset() возвращает созданное CSS-правило в виде строки.
<code>$selector</code> = '.my-class'; // CSS-селектор
<code>$declarations</code> = array(
'color' => 'red',
'font-size' => '16px',
); // Список объявлений
<code>$ruleset</code> = WP_Theme_JSON::to_ruleset( <code>$selector</code>, <code>$declarations</code> ); // Создание CSS-правила
echo <code>$ruleset</code>; // Вывод CSS-правила В данном примере создается CSS-правило с селектором .my-class и списком объявлений, включающим свойства color со значением red и font-size со значением 16px. Метод to_ruleset() создает соответствующее CSS-правило и возвращает его в виде строки. Результат выводится на экран.
update_separator_declarations()
Метод update_separator_declarations() класса WP_Theme_JSON предназначен для обновления массива объявлений, если в файле theme.json есть блок разделителя с определенным стилем фона. Метод добавляет атрибут цвета, чтобы отразить изменения на фронтенде.
WP_Theme_JSON::update_separator_declarations( array $declarations ): array Метод update_separator_declarations() принимает один обязательный параметр:
$declarations(array) — Список объявлений.
$declarations (array) — Обязательный. Список объявлений.
Метод update_separator_declarations() возвращает отфильтрованный массив объявлений.
<?php
// Пример использования метода update_separator_declarations()
$declarations = array(
array(
'type' => 'separator',
'color' => '#ffffff',
'background' => '#000000',
),
array(
'type' => 'text',
'color' => '#333333',
'background' => '#ffffff',
),
);
$updated_declarations = WP_Theme_JSON::update_separator_declarations( $declarations );
// Вывод обновленного массива объявлений
var_dump( $updated_declarations );
?> __construct()
Метод «__construct()» является конструктором класса «WP_Theme_JSON». Он инициализирует объект класса и устанавливает значения его свойств. Конструктор вызывается автоматически при создании нового объекта класса.
Класс «WP_Theme_JSON» инкапсулирует обработку структур, соответствующих спецификации theme.json.
WP_Theme_JSON::__construct( array $theme_json = array(), string $origin = 'theme' ) Метод «__construct()» принимает два параметра:
$theme_json(тип: array, опционально) — Структура, которая соответствует схеме theme.json. По умолчанию: пустой массив.$origin(тип: string, опционально) — Источник данных, представленный данным объектом. Один из вариантов: ‘default’, ‘theme’ или ‘custom’. По умолчанию: ‘theme’.
Конструктор класса «WP_Theme_JSON» инициализирует объект и устанавливает значения его свойств на основе переданных параметров.
/**
* Пример использования метода "__construct()" класса "WP_Theme_JSON".
*
* @param array $theme_json Структура, соответствующая схеме theme.json.
* @param string $origin Источник данных, представленный данным объектом.
* Возможные значения: 'default', 'theme' или 'custom'.
*/
$theme_json = array(
// Здесь указываются параметры структуры theme.json
);
$origin = 'theme';
$theme = new WP_Theme_JSON( $theme_json, $origin );
В приведенном примере создается новый объект класса «WP_Theme_JSON» с заданными значениями параметров «$theme_json» и «$origin».
Примеры использования
Создание экземпляра класса WP_Theme_JSON
// Создание экземпляра класса WP_Theme_JSON
$theme_json = new WP_Theme_JSON();
Для создания экземпляра класса WP_Theme_JSON используется конструктор «__construct». Этот класс предназначен для обработки структур, соответствующих спецификации theme.json.
Добавление подселектора к существующему
// Добавление подселектора к существующему
$selector = '.my-selector';
$sub_selector = ':hover';
$new_selector = $theme_json->append_to_selector($selector, $sub_selector);
Метод «append_to_selector» принимает два аргумента: существующий селектор и подселектор, и возвращает новый селектор, полученный путем добавления подселектора к существующему селектору.
Вычисление стилей для предустановленных классов
// Вычисление стилей для предустановленных классов
$settings = array(
'preset' => 'large',
'spacing' => 'medium',
);
$presets_styles = $theme_json->compute_preset_classes($settings);
Метод «compute_preset_classes» принимает массив настроек и возвращает сгенерированные наборы правил для предустановленных классов на основе этих настроек.
Извлечение CSS-переменных для пользовательских значений
// Извлечение CSS-переменных для пользовательских значений
$block_settings = array(
'color' => '#ff0000',
'font-size' => '16px',
);
$declarations = array();
$theme_json->compute_theme_vars($block_settings, $declarations);
Метод «compute_theme_vars» принимает массив настроек блока и массив объявлений, и извлекает CSS-переменные для пользовательских значений, добавляя их в массив объявлений в соответствующем формате.
Вопросы и ответы
Как получить данные из файла theme.json?
Для получения данных из файла theme.json в WordPress используется класс WP_Theme_JSON. Для этого нужно создать экземпляр этого класса с помощью конструктора «__construct».
$theme_json = new WP_Theme_JSON();
После создания экземпляра класса, можно получить данные из файла theme.json с помощью метода «get_data». Этот метод возвращает действительный theme.json, предоставленный темой.
$data = $theme_json->get_data();
Как получить список стилей блока из theme.json?
Для получения списка стилей блока из файла theme.json в WordPress используется метод «get_block_styles». Этот метод преобразует каждую секцию стилей в список правил CSS, содержащих стили блока, которые будут добавлены к таблице стилей.
$block_styles = $theme_json->get_block_styles();
Как получить список классов блока из theme.json?
Для получения списка классов блока из файла theme.json в WordPress используется метод «get_block_classes». Этот метод преобразует каждую секцию стилей в список правил CSS, содержащих стили блока, которые будут добавлены к таблице стилей.
$block_classes = $theme_json->get_block_classes();
Как получить список настроек блока из theme.json?
Для получения списка настроек блока из файла theme.json в WordPress можно использовать метод get_settings() класса WP_Theme_JSON. Этот метод возвращает существующие настройки для каждого блока.
$theme_json = new WP_Theme_JSON();
$settings = $theme_json->get_settings();
Как получить список шаблонов страниц из активной темы?
Для получения списка шаблонов страниц из активной темы в WordPress можно использовать метод get_custom_templates() класса WP_Theme_JSON. Этот метод возвращает данные о шаблонах страниц активной темы.
$theme_json = new WP_Theme_JSON();
$templates = $theme_json->get_custom_templates();
Как получить список паттернов из theme.json?
Для получения списка паттернов из файла theme.json в WordPress можно использовать метод get_patterns() класса WP_Theme_JSON. Этот метод возвращает список желаемых паттернов (слагов), которые должны быть зарегистрированы из каталога паттернов.
$theme_json = new WP_Theme_JSON();
$patterns = $theme_json->get_patterns();
Как получить список CSS-переменных из theme.json?
Для получения списка CSS-переменных из theme.json можно использовать метод get_css_variables. Он преобразует каждую секцию стилей в список правил CSS, которые будут добавлены к таблице стилей. Пример использования:
$theme_json = new WP_Theme_JSON();
$css_variables = $theme_json->get_css_variables();
В результате выполнения этого кода, в переменной $css_variables будет содержаться список CSS-переменных из theme.json.
Как применить CSS-стили из theme.json к стилям блока?
Для применения CSS-стилей из theme.json к стилям блока можно использовать метод get_block_styles. Он преобразует каждую секцию стилей блока в список правил CSS, которые будут добавлены к таблице стилей. Пример использования:
$theme_json = new WP_Theme_JSON();
$block_styles = $theme_json->get_block_styles();
В результате выполнения этого кода, в переменной $block_styles будет содержаться список CSS-стилей из theme.json, примененных к стилям блока.
Как преобразовать внутреннее представление переменных в CSS-представление?
Для преобразования внутреннего представления переменных в CSS-представление можно использовать метод convert_custom_properties. Он преобразует внутреннее представление переменных в формат CSS. Пример использования:
$theme_json = new WP_Theme_JSON();
$custom_properties = $theme_json->convert_custom_properties($internal_variables);
В результате выполнения этого кода, в переменной $custom_properties будет содержаться преобразованное в CSS-представление внутреннее представление переменных.
Класс WP_Theme_JSON предоставляет удобные методы для работы с theme.json в WordPress. Методы
get_css_variablesиget_block_stylesпозволяют получить список CSS-переменных и применить CSS-стили из theme.json соответственно. Методconvert_custom_propertiesпозволяет преобразовать внутреннее представление переменных в CSS-представление. Эти методы могут быть полезными при разработке тем и плагинов для WordPress.