Виджеты

23.01.2017

809

Виджеты — это модули с различным функционалом для добавления в специальную область sitebar. Одним из основных преимуществ данного решения является скорость и простота настройки.

Виджет для изображения

Если вставить изображение в простой текстовый виджет, то отображение будт происходить по стандарту отступы, заголовок и т.д.
Image Widget — плагин для создания нового типа виджета специально для изображений, без лишних «обводок».

В версии WP 4.8 подобный виджет стал входит в базовый набор

Условия вывода виджета

Widget Logic (300 000) — плагин позволяющий прописывать логику вывода каждого виджета. В виджетах появляется специальное поле Widget logic в котором мы прописываем условия (категория, запись и т.д.). Весь функционал плагина строится на базовых запросах условий wordpress. Преимуществом плагина является его простота и лаконичность. Можно строить условия с дополнительными таксономиями, в частности категориями товаров woocommerce:

is_product_category('gipsokarton')

Интересный запрос is_product_category надо подробнее изучить.

Widget Context (60 000) — еще один аналогичный плагин. При установке Woocommerce расширяет варианты запросов. Чтобы показывать виджет в категории и товарах входящих в нее необходимо выбрать пункт: Показывать в > Архив записей «Товары», а в поле URL прописать

catalog/gipsokarton/
catalog/gipsokarton/*

Отключение стандартных виджетов

Мы можем отключить какие-то стандартные виджеты, чтобы они не мешались «под ногами».

//Удаление стандартных виджетов
add_action( 'widgets_init', 'widgets_init_example' );
 
function widgets_init_example() {
    unregister_widget( 'WP_Widget_Pages' );
  //unregister_widget( 'WP_Widget_Calendar' );
    unregister_widget( 'WP_Widget_Archives' );
    unregister_widget( 'WP_Widget_Links' );
    unregister_widget( 'WP_Widget_Meta' );
  //unregister_widget( 'WP_Widget_Search' );
  //unregister_widget( 'WP_Widget_Text' );
  //unregister_widget( 'WP_Widget_Categories' );
  //unregister_widget( 'WP_Widget_Recent_Posts' );
    unregister_widget( 'WP_Widget_Recent_Comments' );
    unregister_widget( 'WP_Widget_RSS' );
  //unregister_widget( 'WP_Widget_Tag_Cloud' );
}

Выводим виджеты woocommerce

Любой виджет можно вывести в любом месте верстки с помощью функции the_widget, нужно правильно указывать название виджета и его аргументы.

Виджет категорий woocommerce

<?php the_widget( 'WC_Widget_Product_Categories', 'dropdown=1' ); ?>

Виджет недавно просмотренных товаров

<?php the_widget( 'WC_Widget_Recently_Viewed', 'number=5&title=Недавно просмотренные товары' ); ?>

Почему-то сам по себе он работает не корректно — не запоминает просмотренные товары. Но начинает работать когда активировать родной виджет и вывести где-либо.

Решение: активировать, но скрыть (display: none;) основной виджет.

CSS класс виджета

У стандартных виджетов WP есть одна проблема — у разных виджетов одинаковый класс widget. Было бы гораздо удобнее, чтобы у каждого уникального виджета был бы id или дополнительный класс.

Плагин Widget CSS Classes (100 000 установок) как раз решает эту проблему. В каждом виджете появляется дополнительное поле для указания дополнительного класса. И еще плагин автоматически назначает классы: widget-first, widget-last, widget-odd, widget-even и порядковые номера (widget-1, widget-2 и т.д.).

Проверка активен ли виджет

Проверяем активен ли виджет или нет:

<?php $sidebar_id = is_active_widget( 0, 0, 'woocommerce_layered_nav' );
if( $sidebar_id ){
echo 'Во фронте есть активный виджет фильтр по свойствам товаров';
} else { echo 'Во фронте нет активного виджета фильтр по свойствам товаров'; } ?>

Проверка активен ли сайтбар (т.е. есть ли в нем хоть один виджет).

Список виджетов woocommerce:

woocommerce_layered_nav — Фильтрация товаров по атрибутам
woocommerce_layered_nav_filters — Активные фильтры товаров
woocommerce_product_categories — Категории товаров
woocommerce_recently_viewed_products — Недавно просмотренные товары
woocommerce_widget_cart — Корзина
woocommerce_product_tag_cloud — Облако меток товаров
woocommerce_product_search — Поиск товаров
woocommerce_recent_reviews — Последние обзоры товара
woocommerce_products — Товары
woocommerce_top_rated_products — Товары по рейтингу
woocommerce_rating_filter — Фильтрация товаров по рейтингу
woocommerce_price_filter — Фильтрация товаров по цене

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Виджет последних записей

Виджет последних записей

Создаем виджет последних записей, с миниатюрами. Вставить в текстовый виджет, posts_per_page — количество, category — если убрать, то будут все рубрики. Можно добавлять и другие параметры запроса. <ul class="lastpostvidget"> <?php Читать далее »

Виджет подкатегорий

Виджет подкатегорий

Реализация виджета текущих подкатегорий и если есть родительская категория выводить и ее с отдельным стилем. Неплохое решение для навигации: в этом случае целесообразно в основном блоке выводить все записи категории Читать далее »

Фильтры Woocommerce

Фильтры Woocommerce

В базовую комплектацию Woocommerce входит набор виджетов для фильтрации товаров. Но данные виджеты необходимо несколько доработать. WooCommerce Навигация по слоям В этом виджете необходимо задать атрибут товара по которому будет Читать далее »

/ /

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

Пока нет комментариев. Будь первым!

Виджеты
Товар под заказ
Рекомендации для васТовар под заказOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.