Ответы пользователя по тегу WordPress
  • Как вывести посты в разных местах на странице, используя цикл только 1 раз?

    @dtBlack
    get_post возвращает вам массив.
    Сколько раз его крутить в цикле не имеет значения, так же как не имеет значения в каком из типов циклов будет идти работа, тем более по задаче for подходит больше.
    Но в вашем случае при фиксированном количестве позиций вывода цикл не обязателен.
    Можно обращаться к элементам напрямую:
    $args = array('posts_per_page' => 13, 'order' => 'desc');
    $myposts = get_posts( $args ); 
    
    ......
    
    if (isset($myposts[0])){
       //выводим первый пост $myposts[0]
    }

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

    Для написания более компактного кода можно воспользоваться функциями для работы с массивами, а конкретно array_slice, и уже над полученными в итоге массивами работать с foreach .

    $mypost1 = array_slice($myposts, 0, 4);
    $mypost2 = array_slice($myposts, 4, 3);
    $mypost3 = array_slice($myposts, 7, 6);
    
    if (!empty($mypost3)){
      foreach ($mypost3 as $post){
        //вывод поста
      }
    }
    Ответ написан