есть сайт и у него порядка 130 категорий, дл реализации визуала нужно было заполнить все миниатюры этих категорий т.е. добавить в каждую категорию картинку) перелопатив весь интернет нормальных решений не нашлось, решили написать PHP код самостоятельно.
Для автоматического добавления миниатюры в рубрику товаров на сайте WordPress с Woocommerce, используя фото товара, находящегося в данной рубрике, вы можете использовать следующий код:
function add_category_thumbnail( $term_id ) {
$thumbnail_id = get_term_meta( $term_id, ‘thumbnail_id’, true );
if ( ! $thumbnail_id ) {
$products = get_posts( array(
‘post_type’ => ‘product’,
‘numberposts’ => 1,
‘tax_query’ => array(
array(
‘taxonomy’ => ‘product_cat’,
‘field’ => ‘term_id’,
‘terms’ => $term_id,
),
),
) );
if ( $products ) {
$product_id = $products[0]->ID;
if ( has_post_thumbnail( $product_id ) ) {
$thumbnail_id = get_post_thumbnail_id( $product_id );
add_term_meta( $term_id, ‘thumbnail_id’, absint( $thumbnail_id ), true );
}
}
}
}
function update_all_categories_thumbnails() {
$terms = get_terms( array(
‘taxonomy’ => ‘product_cat’,
‘hide_empty’ => false,
) );
foreach ( $terms as $term ) {
$products = get_posts( array(
‘post_type’ => ‘product’,
‘numberposts’ => 1,
‘tax_query’ => array(
array(
‘taxonomy’ => ‘product_cat’,
‘field’ => ‘term_id’,
‘terms’ => $term->term_id,
),
),
) );
if ( $products ) {
add_category_thumbnail( $term->term_id );
}
}
}
add_action( ‘wp_loaded’, ‘update_all_categories_thumbnails’ );
add_action( ‘created_product_cat’, ‘add_category_thumbnail’ );
add_action( ‘edited_product_cat’, ‘add_category_thumbnail’ );
Этот код автоматически добавляет миниатюру категории товаров, используя изображение, установленное как миниатюра первого товара в этой категории. Код получает первый товар с помощью WP_Query, который ищет все товары, связанные с данной категорией, и выбирает первый из них. Затем проверяется, имеет ли товар изображение, и, если да, изображение добавляется как миниатюра категории.