Для добавления новых блоков на главной странице их нужно зарегистрировать. Для этого используйте фильтр usam_register_home_blocks.
add_filter( 'usam_register_home_blocks', 'register_home_blocks');
function register_home_blocks( $blocks )
{
return [
'products-grid' => ['title' => __('Товары', 'usam'), 'template' => 'template-parts/home-blocks/products-grid', 'options' => [
['field_type' => 'select', 'name' => __('Какие товары выводить', 'usam'), 'code' => 'query', 'options' => [
'last_purchased' => __('Последние проданные товары', 'usam'),
'leaders_sells_month' => __('Лидеры продаж за месяц', 'usam'),
'news' => __('Новинки', 'usam'),
'sticky' => __('Избранные менеджером товары', 'usam'),
'popularity' => __('Популярные товары по количеству просмотров', 'usam')
], 'default' => 'popularity'],
]],
'popular-categories' => ['title' => __('Популярные категории', 'usam'), 'template' => 'template-parts/home-blocks/popular-categories', 'options' => [
['field_type' => 'categories', 'name' => __('Категории', 'usam'), 'code' => 'ids', 'default' => [], 'multiple' => 1],
]],
];
}
Описание массива для регистрации блоков
title (строка) (обязательно)
Название блока
description (строка) (обязательно)
Описание блока
template (строка) (обязательно)
Путь в папке шаблона до файла
options (массив) (не обязательно)
Опции, необходимые для этого блока
После регистрации блоки будут доступны в Бизнес => Дизайн => Главные
Типы опций
Опции для блоков бывают следующих типов:
- text — обычный текст или число
- textarea — описание или текст
- date — дата
- select — список, если указать параметр multiple равный 1, то можно выбирать несколько значений
- categories — выбор категории, если указать параметр multiple равный 1, то можно выбирать несколько значений
- autocomplete — поиск по базе. Должен быть указан параметр request, что нужно искать, например, locations — город, pages — страница
Как получать в шаблоне название, описание и настройки блока
Чтобы получить название блока воспользуйтесь функцией usam_get_title_home_block
$title = usam_get_title_home_block();
Чтобы получить описание блока воспользуйтесь функцией usam_get_description_home_block
$description = usam_get_description_home_block();
Чтобы получить в шаблоне опцию, укажите её название
$ids = usam_get_option_home_block( 'ids' );
Регистрация баннеров
Часто в блоках на главной нужны баннеры. Чтобы платформа знала где их выводить их нужно зарегистрировать.
Этот код можно будет добавить в файл functions.php и будет зарегистрирован новая группа баннеров.
add_filter( 'usam_register_banners', 'register_banners');
function register_banners( $banners )
{
$banners['home_banners'] = __("На главной","usam");
return $banners;
}
Теперь эту группу можно выбрать в баннерах
Используйте функцию для вывода группы баннеров в шаблоне.
<?php usam_theme_banners(['banner_location' => 'home_banners', 'number' => 4]); ?>
banner_location (строка) (обязательно)
Зарегистрированная группа баннеров
number (число) (не обязательно)
Количество баннеров для вывода
Регистрация слайдеров
Так же в блоках на главной нужны слайдеры. Чтобы платформа знала где их выводить их нужно зарегистрировать.
add_filter( 'usam_register_sliders', 'register_sliders');
function register_sliders( $sliders )
{
$sliders['home_slider'] = __("На главной вверху","usam");
return $sliders;
}
Теперь можно указать слайдер, который нужно вывести.
Чтобы вывести слайдер используйте хук wordpress, где к коду регистрации добавляется и получается home_slider_usam.
<?php do_action( 'usam_home_slider' ); ?>
Пример вывода слайдеров и баннеров в файле блока
<div class="banners">
<div class="banners__head">
<?php do_action( 'usam_banners_slider' ); ?>
<div class="banners__block banners__block_vertical">
<?php usam_theme_banners(['banner_location' => 'home_left_banners']); ?>
</div>
</div>
<div class="banners__block banners__block_horiz">
<?php usam_theme_banners(['banner_location' => 'home_footer_banners']); ?>
</div>
</div>