@olya_097

Как мне в первом if выводить только один раз блок, в else — N-е количество раз?

<?php
				$news_posts = get_field('news');
				var_dump($news_posts);
				
				$args = array(
					'post in' => $news_posts,
					'numberposts' => 5,
					'post_type'   => 'post',
					'orderby' => 'post__in'
				);

				$query = new WP_Query( $args );
				?>

			<?php	
                foreach( $news_posts as $post ){
                	if($news_posts[0]){
               			setup_postdata($post);
                    	get_template_part( 'template-parts/news-item', get_post_format() );
                	} else {
                		setup_postdata($post);
                    	get_template_part( 'template-parts/news-item', get_post_format() );
                	}
                  
                }
                wp_reset_postdata();
            ?>


МАссив $news_posts возвращает [0]=> int(41) [1]=> int(46) [2]=> int(49) }
и чтобы это было гибко( тоесть не мянять id вручную
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@cema93
WordPress разработчик
Не стоит в foreach обращаться к $news_posts.
Лаконичнее использовать дополнительную переменную:
<?php
        $news_posts = get_field('news');
        var_dump($news_posts);
        
        $args = array(
          'post in' => $news_posts,
          'numberposts' => 5,
          'post_type'   => 'post',
          'orderby' => 'post__in'
        );

        $query = new WP_Query( $args );
        ?>

      <?php	
                $i=0;
                foreach( $news_posts as $post ){
                	if($i++ == 0 ){
               			setup_postdata($post);
                    	        get_template_part( 'template-parts/news-item', get_post_format() );
                	} else {
                		setup_postdata($post);
                            	get_template_part( 'template-parts/news-item', get_post_format() );
                	}
                  
                }
                wp_reset_postdata();
            ?>

PS думаю, что в первом или во втором случае должен грузиться другой get_template_part
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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