/ Сайтостроение / Плагины / Виджет подкатегорий

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

05.06.2016

949

2

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

Подкатегории товаров woocommerce

Данный код вставляем в сайтбар. Если есть дочерние категории — будет их выводить (проверка). Если есть родительская категория — выведет и её (проверка).

<?php
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$parthermid = wp_get_term_taxonomy_parent_id( $term->term_id, $taxonomy );
$partherm = get_term( $parthermid, $taxonomy );
?>

<?php if (term_is_ancestor_of($partherm, $term->term_id, $taxonomy) == true): ?>
<div id="podcat-list">

<a href="<?php echo get_tag_link($partherm->term_id); ?>">
<div class="podcat-line podcat-parent">

<div class="cat-image-min"><?php woocommerce_subcategory_thumbnail( $partherm ); ?></div>
<h2 class="podcat-line-title"><?php echo $partherm->name ?></h2>

</div>
</a>

</div>
<?php endif; ?>

 

<?php
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

$childterms = get_terms( array(
'taxonomy' => 'product_cat',
'parent' => $term->term_id,
'hide_empty' => false // Показывать пустые подкатегории
) );
?>
<?php if ($childterms): ?>

<div id="podcat-list">
<?php foreach ($childterms as $childterm) : ?>

<a href="<?php echo get_tag_link($childterm->term_id);?>">
<div class="podcat-line">

<div class="cat-image-min"><?php woocommerce_subcategory_thumbnail( $childterm ); ?></div>
<h2 class="podcat-line-title"><?php echo $childterm->name ?></h2>

</div>
</a>

<?php endforeach; ?>
</div>

<?php endif; ?>

Также можно добавить ссылку Вернутся в КАТАЛОГ, когда мы находимся в верхней рублике. Для этого добавим подусловие

<?php elseif($parthermid === 0): ?>

<div class="widget">

<a href="<?php echo get_site_url(); ?>/shop/">
<div class="podcat-line podcat-parent"><i class="fa fa-chevron-left" aria-hidden="true"></i> Назад в Каталог</div>
</a>

</div>

Примечание: в более поздней версии верстки заменил #podcat-list на .widget

Стили CSS

/* Виджет дочерние категории */

#podcat-list {
    margin: 0 0 20px 0;
}

.podcat-line {
    width: 100%;
    border: 1px solid #ccc;
    padding: 10px;
    margin-bottom: 5px;
    background-color: #fff;
    border-radius: 5px;
    box-sizing: border-box;
}

.podcat-parent {
    background-color: #50aaff;
    color: #fff;
}	
	
.cat-image-min {
    width: 20%;
}

.cat-image-min img {
    float: left;
    border-radius: 50px;
    border: 1px solid #fff;
    box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.2);
}

.podcat-line-title {
    padding: 15px 0 15px 55px;
    font-size: 14px;
}

Подкатегории стандартной Категории

<?php
$current_cat = get_query_var('cat');
$childcats = get_categories('child_of='.$current_cat.'&hide_empty=0');
?>

<?php if ($childcats): ?>

<div id="podcat-list">

<?php foreach ($childcats as $childcat) : ?>

<?php $img_arr = get_field('mini-thumb', 'category_'.$childcat->cat_ID); ?>
<a href="<?php echo esc_url( get_category_link($childcat->cat_ID) ) ?>" title="<?php echo $cat->cat_name ?>">
<div class="podcat-line">

<?php
if($img_arr!="")
{ echo '<div class="cat-image-min"><img src="'.$img_arr['sizes']['square-xs'].'" alt="'.$img_arr['alt'].'" /></div>'; }
else
{ echo '<div class="cat-image-min"><img src="'.get_bloginfo("template_url").'/images/img-default-square.jpg" /></div>'; }
?>

<h2 class="podcat-line-title"><?php echo $childcat->cat_name ?></h2>

</div>
</a>

<?php endforeach; ?>

</div>

<?php endif; ?>

Тэги:

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

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

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

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

Виджеты

Виджеты

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

Фильтры Woocommerce

Фильтры Woocommerce

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

/ /

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

2 комментария

  1. Денис

    Доброе время суток! Пользовался этим решением, всё работало, но с недавних пор ссылки перестали работать. Видимо, часть кода <?php echo get_tag_link($partherm->term_id); ?> устарела или типа того. Самому не разобраться. Может, сможете обновить решение?

    1. Денис

      Проблема решилась обновлением WP )

Виджет подкатегорий
Внедрение модулей транспортных компаний в WC
Рекомендации для васВнедрение модулей транспортных компаний в WCOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.