Помимо стилей плагин использует различные шаблоны для вывода фильтров.
Стили используются что бы добавить определенные классы и внести небольшие изменения в положения элементов. В то же время шаблоны используются что бы определить общую структуру элементов.
Шаблоны для фильтров находятся в директории templates\filters:
- checkbox.php – шаблон для чекбоксов, фильтров по цвету и фильтров по картинке
- datepicker.php – шаблон для выбора диапазона дат
- new_slider.php – шаблон для новых ползунков
- select.php – шаблон для выпадающего списка
- slider.php – шаблон для старых ползунков
Шаблоны для остальных элементов находятся в директории templates\elements:
- button.php – шаблон для кнопок применения фильтров и сброса фильтров
- selected_filters.php – шаблон для вывода выбранных фильтров
Есть три способа изменить шаблон:
- Используя хуки – более предпочтительный метод при небольших изменениях, так как не изменяет изначальный шаблон и при изменении шаблона в плагине
- Переопределить шаблон в теме – нужно использовать только в том случае, если планируется полностью переделать шаблон, тогда скорее всего понадобится изменить Javascript код что бы
- Добавить новый шаблон в теме – можно использовать вместо второго способа, если будет создан полостью новый вид фильтра или необходимо использовать новый Javascript код. В этом случае функциональность остальных шаблонов останется неизменной. Так же необходимо создавать новые стили, которые будут использовать этот шаблон.
Изменение шаблона при помощи хуков
Разные шаблоны используют разные наборы фильтров, но некоторые совпадают.
Шаблоны для фильтров используют два хука:
- BeRocket_AAPF_template_single_item – фильтрация элементов одного значения фильтров
- BeRocket_AAPF_template_full_content – фильтрация всех элементов одного фильтра для построения HTML кода
Шаблон для остальных элементов использует один хук:
- BeRocket_AAPF_template_full_element_content – фильтрация элементов Update button, Reset button, Selected filters area для построителя HTML кода
Пример кода для добавления блока в фильтр перед значениями атрибута/таксономии:
add_filter('BeRocket_AAPF_template_full_content', 'some_custom_berocket_aapf_template_full_content', 4000, 3);
function some_custom_berocket_aapf_template_full_content($template_content, $terms, $berocket_query_var_title) {
if( $berocket_query_var_title['new_template'] == 'checkbox') {
$template_content['template']['content']['filter']['content'] = berocket_insert_to_array(
$template_content['template']['content']['filter']['content'],
'list',
array(
'custom_content' => '<div><h1>SOME CUSTOM HTML</h1><p>Display there anything after title</p></div>'
),
true
);
}
return $template_content;
}Пример кода для замены тега H3 на тег H5 в заголовке:
add_filter('BeRocket_AAPF_template_full_content', 'some_custom_berocket_aapf_template_full_content', 4000, 1);
add_filter('BeRocket_AAPF_template_full_element_content', 'some_custom_berocket_aapf_template_full_content', 4000, 1);
function some_custom_berocket_aapf_template_full_content($template_content) {
$template_content['template']['content']['header']['content']['title']['tag'] = 'h5';
return $template_content;
}Изменения шаблона переопределением в теме
Для переопределения шаблона необходимо в корне темы создать директорию woocommerce-ajax_filters\filters. Оригинальные шаблоны находятся в директории templates\filters. Необходимо скопировать необходимый шаблон и после отредактировать его.
Создание нового шаблона для плагина
Для создания нового шаблона необходимо в корне темы создать директорию woocommerce-ajax_filters\filters и создать в ней новый файл или скопировать какой либо стандартный шаблон с директории templates\filters и переименовать его. Необходимо использовать имя, которое не совпадает со стандартными шаблонами.
Что бы использовать созданный шаблон необходимо создать новый стиль. Подробнее о создании стилей можно прочитать по этой ссылке
Добавить дополнительные стили
