@Anonimmus

Как вывести товары по атрибуту?

здравстуйте. подскажите как вывести товары ПО Атрибуту???
6050a3a80a41f963721191.png
в атрибуты товаров добавил новый атрибут метка pa_metka со значениями Новинки, популярные и рекомендуемые.
вывод.
<?php 
				    $args = array(
				      'post_type' => 'product',
				      'post_status' => 'publish',
				      'ignore_sticky_posts'   => 1, 
				      'product_cat' => $term->slug
				    );

				    $products = new WP_Query( $args );


				  if ( $products->have_posts() ) :
				  ?>
					
			      <?php while ( $products->have_posts() ) : $products->the_post(); ?>
            <!-- item -->

            <?php  
            global $product;
            echo $product->get_attribute('new');
?>
   <pre><?php print_r($product); ?></pre>         
            
            

			        <?php wc_get_template_part( 'content', 'product' ); ?>
            <!-- // item -->
			      <?php endwhile; // end of the loop. ?>

	  			<?php endif; ?>


И начинаются проблемы,
1. не все товары появляются, появляются лишь 12 рандомно,
2. Пытаюсь вытащить значение метки чтобы затем отсортировать новинки к новинкам, популярные к популярным.

ПС: стандартно делал через метки записи
6050a4eec3f2b352904534.png
но клиент хочет через атрибут
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@Anonimmus Автор вопроса
<?php 
         $args = array(
          'post_type' => 'product',
          'post_status' => 'publish',
          'ignore_sticky_posts'   => 1, 
          'product_cat' => $term->slug
        );

         $products = new WP_Query( $args );
         if ( $products->have_posts() ) :
          ?>

          <?php while ( $products->have_posts() ) : $products->the_post(); ?>
            <!-- item -->

            <?php  
            $attributes = $product->get_attributes();
            foreach ( $attributes as $attribute ):
    $attribute_data = $attribute->get_data(); // Get the data in an array

    $attribute_name = $attribute_data['name']; // The taxonomy slug name
    $attribute_terms = $attribute_data['options'][0]; // The terms Ids
    // echo '<pre>'; print_r($attribute_terms); echo '</pre>'; 

    if ($attribute_name == 'метка' & $attribute_terms == 'Новинки' ) {
     wc_get_template_part( 'content', 'product' ); 
    }
 endforeach;
 ?>


Сам спросил сам же и ответил.. Буду рад разбору вопроса, только адекватно
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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