Woocommce: страница продукта категории с продуктами, сгруппированными по пользовательской таксономии - PullRequest
3 голосов
/ 29 апреля 2020

Мне нужно показать страницу продукта категории (Woocommerce) и сгруппировать их с помощью пользовательской таксономии, которая создает плагин пользовательского типа публикации (CPT).

Вот снимок, чтобы понять, что я имею в виду: https://docs.google.com/drawings/d/1JDxGOO2CCq6aGSUwzows7wtAn9DmshCF7M8g-PdcdUc/edit?usp=sharing

Здесь плагин Custom Post Type (CPT): https://es.wordpress.org/plugins/custom-post-type-ui/

Есть ли способ сделать это? Я думаю о КРЮКЕ для страницы «Категория», где я могу получить значение Пользовательской таксономии, чтобы сгруппировать продукт и, наконец, распечатать его ... не уверен.

Должен ли я начать с этого?

    /***********************************************************/
    /**********  CATEGORY GROUPED BY CPT TAXONOMY  ************/
    /***********************************************************/
    // define the woocommerce_shop_loop callback 
    function my_woocommerce_shop_loop( $array, $int ) { 
        Fetch products and Custom Taxonomies values to group them.    
    }; 

    // add the action 
    add_action( 'woocommerce_shop_loop', 'my_woocommerce_shop_loop', 10, 2 ); 

1 Ответ

0 голосов
/ 06 мая 2020

Это не точное решение того, что вы спрашиваете, но это альтернатива, и это может помочь, поэтому я публикую это.

Либо с помощью плагина, либо нет, способ l oop через terms вашего taxonomy и отображать элементы каждого термина, это код ниже

  <?php
     $terms = get_terms([
        'taxonomy' => 'YOUR_CUSTOM_TAXONOMY_HERE',
    ]);
    foreach($terms as $term) {
      $args = array(
        'post_type' => 'YOUR_CUSTOM_POST_TYPE',
        'posts_per_page'  => -1,
        'tax_query' => array(
          array(
            'taxonomy' => 'YOUR_CUSTOM_TAXONOMY_HERE',
            'field' => 'slug',
            'terms' => $term->slug,

          )
        )
      );
      $the_new_query = new WP_Query( $args ); 
      if ( $the_new_query->have_posts() ) : 
        echo '<h1>'.$term->name.'</h1>';
        echo '<ul>';
        while ( $the_new_query->have_posts() ) : $the_new_query->the_post();
        '<li>'.the_title().'</li>';
        endwhile;
        echo '</ul>';
      endif;
    }
  ?>
...