Задать вопрос
vladislavkalnaus
@vladislavkalnaus
Интернет предприниматель

Как вывести список категорий с изображением в woocommerce?

Добрый день! Подскажите как вывести вместе со списком категорий их изображение. Код вывода категорий
<?php 
  $taxonomy     = 'product_cat';
  $orderby      = 'name';  
  $show_count   = 0;
  $pad_counts   = 0; 
  $hierarchical = 1; 
  $title        = '';  
  $empty        = 0;
$shop_category = array(
  'taxonomy'     => $taxonomy,

);
 $cat_product = get_categories( $shop_category )?>
<?php foreach ($cat_product as $cat_p) :
  
?>

		<?php 
		 if($cat_p->category_parent == 0) {
	        $category_id = $cat_p->term_id;

          ?>

				<b class="title"><?php echo $cat_p->name; ?></b>
	    <?php } ?>
<?php endforeach; ?>
  • Вопрос задан
  • 8641 просмотр
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Alex-Woo
full stack developer
Выкладываю прямо с рабочего проекта:

$prod_cat_args = array(
    'taxonomy'    => 'product_cat',
    'orderby'     => 'id', // здесь по какому полю сортировать
    'hide_empty'  => false, // скрывать категории без товаров или нет
    'parent'      => 0 // id родительской категории
  );

$woo_categories = get_categories( $prod_cat_args );
  foreach ( $woo_categories as $woo_cat ) {
      $woo_cat_id = $woo_cat->term_id; //category ID
      $woo_cat_name = $woo_cat->name; //category name
      $woo_cat_slug = $woo_cat->slug; //category slug
      echo '<div class="main-cat-item">';
      $category_thumbnail_id = get_woocommerce_term_meta($woo_cat_id, 'thumbnail_id', true);
      $thumbnail_image_url = wp_get_attachment_url($category_thumbnail_id);
      echo '<img src="' . $thumbnail_image_url . '"/>';
      echo '<h2>';
      echo '<a href="' . get_term_link( $woo_cat_id, 'product_cat' ) . '">' . $woo_cat_name . '</a>;
      echo '</h2>';
      echo "</div>\n";
  }


SCSS:
.main-cat-item {
		padding: 1em;
		position: relative;

		h2 {
			font-size: 2em;
			position: absolute;
			bottom: 0;
			right: 0;
			padding: 1.5em 1.5em;
			text-shadow: 0 1px 8px black;

			a {
				color: white;
			}
		}
	}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы