Обрати сторінку

Стили могут быть добавлены в теме или другом плагине.

Как создать новый стиль

Скачать пример стилей для разных типов можно по этой ссылке: СКАЧАТЬ ПРИМЕРЫ.
Они полностью работоспособные и ими можно пользоваться без изменений, но лучше заменить некоторые классы и названия, что бы в будущем не было конфликтов с другими стилями.

Можно использовать за основу стандартные стили плагина, которые находятся в директории template_styles. В версии плагина для разработчиков можно получить доступ к JavaScript файлам для каждого стиля отдельно, скачать её можно здесь.

Возьмем с примеров стиль checkbox.php который используется чаще всего. Код с него:

if( ! class_exists('BAPF_Custom_checkbox_style') ) {
    class BAPF_Custom_checkbox_style extends BeRocket_AAPF_Template_Style {
        function __construct() {
            $this->data = array(
                'slug'          => 'dev_custom_checkbox',
                'template'      => 'checkbox',
                'name'          => 'Dev Custom Checkbox',
                'name_price'    => 'Dev Custom Price Ranges',
                'file'          => __FILE__,
                'style_file'    => plugin_dir_url( __FILE__ ) . 'checkbox_your_style.css',
                'script_file'   => plugin_dir_url( __FILE__ ) . 'checkbox_your_script.js',
                'image'         => plugin_dir_url( __FILE__ ) . 'checkbox_preview_image.png',
                'image_price'   => plugin_dir_url( __FILE__ ) . 'checkbox_preview_image-price.png',
                'version'       => '1.0',
                'sort_pos'      => '10000',
            );
            parent::__construct();
        }
        function template_single_item( $template, $term, $i, $berocket_query_var_title ) {
            $template = parent::template_single_item($template, $term, $i, $berocket_query_var_title);
            $this->array_set( $template, array('attributes', 'class') );
            $template['attributes']['class'][] = 'some_custom_class_item';

            return $template;
        }
        function template_full($template, $terms, $berocket_query_var_title) {
            $template = parent::template_full($template, $terms, $berocket_query_var_title);
            $this->array_set( $template, array('template', 'attributes', 'class') );
            $template['template']['attributes']['class'][] = 'some_custom_class';
            return $template;
        }
    }
    new BAPF_Custom_checkbox_style();
}
  1. Замените имя класса BAPF_Custom_checkbox_style на какое либо другое более уникальное имя, заменить необходимо в трёх строках
  2. Поменять slug на другое более уникальный, в нашем случае используется dev_custom_checkbox
  3. Поменять имя стиля name и имя для диапазона цен name_price(есть не у всех типов фильтров)
  4. Заменить style_file это CSS файл, который будет подключен если используется этот стиль, расположение файла рассчитывается от положения файла стиля checkbox.php. Если вам не нужно подключать какой либо файл, тогда установите этот параметр как пустую строку.
  5. Заменить script_file это Javascript файл, который будет подключен если используется этот стиль, расположение файла рассчитывается от положения файла стиля checkbox.php. Если вам не нужно подключать какой либо файл, тогда установите этот параметр как пустую строку.
  6. Заменить image и image_price изображения, нужно указывать полностью ссылку до изображений. Эти изображения должны быть с разрешением 375 пикселей ширина и 220 пикселей высота. Они отображаются на странице редактирования фильтров, image_price для диапазона цен и image для всех остальных атрибутов и таксономий.

Основные параметры и название для нового стиля готовы. Теперь необходимо настроить что именно данный стиль будет добавлять к стандартному шаблону.

В примерах стиль добавляет класс some_custom_class к основному элементу фильтра и some_custom_class_item к элементу каждого значения атрибута.

Функции и что они меняют

template_full – используется для редактирования всего фильтра целиком

Параметры:

  • $template – массив со всеми параметрами для генерации HTML кода
  • $terms – массив со всеми значениями для атрибута. Массив получен с функции get_terms
  • $berocket_query_var_title – все параметры фильтра для генерации

template_single_item – Используется для редактирования элемента для каждого значения атрибута. В стилях где нет элементов эта функция не используется(ползунок, выбор даты, кнопка, список выбранных фильтров)

  • $template – массив со всеми параметрами для генерации HTML кода
  • $term – все данные значения атрибута. Один элемент с массива полученного с функции get_terms
  • $i – порядок элемента, начинается с нуля
  • $berocket_query_var_title – все параметры фильтра для генерации

Как подключить новый стиль

Как подключить стили в используемой теме:

  1. Создать директорию braapf-template-styles в корне темы
  2. Скопировать в директорию новые стили. PHP файлы стилей должны располагаться непосредственно в директории braapf-template-styles

После этого плагин будет загружать данный файл и стиль можно будет выбрать при создании фильтра.

Как подключить стили с другого плагина или любой другой директории:

Нужно привязать к хуку bapf_include_all_tempate_styles функцию которая будет подключать файлы стилей, в нашем случае файл checkbox.php

add_action( 'bapf_include_all_tempate_styles', 'custom_function_include_tempate_styles' );
function custom_function_include_tempate_styles() {
include_once('PATH_TO_FILE/checkbox.php');
}