Если вы используете WooCommerce, то можно воспользоваться функциями которые предоставляет данный плагин.
Вот пример кода:
$args = array(
'taxonomy' => 'product_cat', // указываем таксономию товаров
'hide_empty' => false, // показываем пустые категории
);
$terms = get_terms( $args ); // получаем список категорий
if ( $terms && ! is_wp_error( $terms ) ) : // если категории найдены
foreach ( $terms as $term ) { // перебираем категории
$term_link = get_term_link( $term ); // получаем URL категории
$term_thumb_url = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true ); // получаем ID изображения миниатюры
echo '<h2><a href="' . esc_url( $term_link ) . '">' . esc_html( $term->name ) . '</a></h2>'; // выводим заголовок и URL категории
if ( $term_thumb_url ) {
echo wp_get_attachment_image( $term_thumb_url, 'thumbnail' ); // выводим миниатюру, если она есть
}
}
else :
echo '<p>Категорий не найдено.</p>';
endif;
Модератор
Юрій
(@yube)
Мне от цикла надо следующее (он будет на Главной странице):
- Вывести заголовок товарной категории.
- Сделать его ссылкой на категорию
- Вывести картинку (не миниатюру). Картинка подгружается через плагин ACF. Картинка тоже должна быть ссылкой на категорию. Можно показать на примере миниатюры. Думаю, что с ACF сам разберусь.
Собственно, Ваш код, ipsoltl, хорош. Буду с ним работать. Спасибо.
[product_categories]
Насколько помню данный шорткод не выводит миниатюр. Хотя может можно использовать такой параметр как «thumbnail». Но могу ошибаться.
Еще вопрос, чтобы как говориться «два раза не вставать», как убрать подкатегории?
Как вариант надо добавить ‘parent’ => 0 в массив $args, который и будет фильтровать.
$args = array(
'taxonomy' => 'product_cat', // указываем таксономию товаров
'hide_empty' => false, // показываем пустые категории
'parent' => 0, // фильтруем только категории без родительской категории
);
$terms = get_terms( $args ); // получаем список категорий
Пробуйте…