Как ограничить возвращаемые категории товаров миниатюрами (WooCommerce) - PullRequest
4 голосов
/ 05 февраля 2020

Моя цель - показать только дочерние категории под идентификатором 93 (поставщики) с миниатюрой и URL, чтобы люди могли щелкнуть по поставщику lo go и увидеть другие продукты в этой категории. У меня все в основном работает, но я не уверен, как ограничить мою просьбу показать только одного ребенка от моих родителей. По общему признанию, это очень любитель - я не бэкэнд-разработчик и не понимаю, как писать PHP.

<?php
echo $wp_query;

$terms_post = get_the_terms($product->ID, 'product_cat');

foreach ($terms_post as $term_cat) { 
    $term_cat_id = $term_cat->term_id;
    $category_url = get_term_link( $term_cat_id, 'product_cat', true );
    $thumbnail_id = get_woocommerce_term_meta($term_cat_id, 'thumbnail_id', true );
    $image_url = wp_get_attachment_url( $thumbnail_id );
    echo '<a href="'. $category_url .'"><img src="' . $image_url . '" alt="" width="50" height="50"></a>'; 
} 
?>

1 Ответ

5 голосов
/ 06 февраля 2020

Чтобы показать только 1 дочерний элемент от родителя, просто используйте array_slice ().

foreach(array_slice($terms_post, 0, 1) as $term_cat ) { 
    $term_cat_id = $term_cat->term_id;
    $category_url = get_term_link( $term_cat_id, 'product_cat', true );
    $thumbnail_id = get_woocommerce_term_meta($term_cat_id, 'thumbnail_id', true );
    $image_url = wp_get_attachment_url( $thumbnail_id );
    echo '<a href="'. $category_url .'"><img src="' . $image_url . '" alt="" width="50" height="50"></a>'; 
} 

Дайте мне знать, если это работает.

РЕДАКТИРОВАНИЕ:

Используйте приведенный ниже код для получения дочерних категорий, используя слаг для родительской категории.

<?php
global $post;
$category_id = get_term_by('slug', 'PARENT-CAT-SLUG', 'product_cat');

$terms = get_the_terms($post->ID, 'product_cat');
foreach ($terms as $term) {
    if($term->parent === $category_id->term_id) { ?>
       <span class="product-sub-cats"><?php echo $term->name; ?></span>
      <?php  break;
    }
}
 ?>

Замените "PARENT-CAT-SLUG" на слаг из вашей родительской категории.

...