Поддержка Проблемы и решения Не работает цикл woocommerce как надо

  • Здравствуйте!

    Необходимо, чтобы цикл выводил на Главной странице товары, связанные определенной меткой. Сами товары выводятся, но товарную метку почему-то не подхватывает:

    <?php $query = new WP_Query( 
        array( 'post_type' => 'product', 'posts_per_page' => 4, 'tag_id' => '191', 'orderby' => 'rand') 
    );
    					
    				
    					
    if( $query->have_posts())
         { while( $query->have_posts() ){ $query->the_post(); 
              
                ?>
    	 <?php the_title(); ?>
    					
         <?php } /* конец while */ ?>
                                                        
                                                
          <?php
            } // конец if
            else 
            echo "<h2>Записей нет.</h2>";
           ?>

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Модератор Yuri

    (@yube)

    Возможно, потому что tag_id относится к предопределенной таксономии ‘метки’ (post_tag), а не к ‘товарным меткам’ (product_tag). Попробуйте использовать tax_query (https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters)

    Видоизменил код по вашим материалам. Вроде все работает. Лишнего ничего не вставил?

    <?php $query = new WP_Query( 
        array( 'post_type' => 'product', 'posts_per_page' => 4, 'orderby' => 'rand',
    		'tax_query' => array(
    		array(
    			'taxonomy' => 'product_tag',
    			'field'    => 'id',
              'terms'    => [191]
    			
    		),
    	), 
    		 
    		 ) 
    );
    					
    				
    					
    if( $query->have_posts())
         { while( $query->have_posts() ){ $query->the_post(); 
              
                ?>
    	 <?php the_title(); ?>
    					
         <?php } /* конец while */ ?>
                                                        
                                                
          <?php
            } // конец if
            else 
            echo "<h2>Записей нет.</h2>";
           ?>

    Спасибо Yuri за наводку. Все работает.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Не работает цикл woocommerce как надо» закрыта для новых ответов.