vic4884
11/22/2018 - 2:38 PM

WP_Query() - query_posts() Где и какой

Где и какой из 3-х вариантов циклов использовать:

query_posts() — если нужно изменить/подправить стандартный вывод записей на страницах WordPress. Можно использовать 1 раз на странице;

get_posts() — если нужно вывести записи из Базы Данных. Можно использовать сколько угодно раз на странице;

WP_Query() — во всех других случаях когда не подошли query_posts() и get_posts(). Класс WP_Query() является ядром query_posts() и get_posts() и может быть использован для каких-либо сложных случаев вывода.

//WP_Query()

<?php
                $args = [
                  'post_type' => 'business_sercvice',
                  'posts_per_page' => 3,
                  //'offset' => 3, - после какого поста выводить 
                  'order' => 'ASC'
                ];
                $query1 = new WP_Query($args);
               
                if($query1->have_posts()){
 
                  while($query1->have_posts()){
                    $query1->the_post(); ?>
                   <div class="grid_4">
                     <?php the_post_thumbnail(); ?>
                     <h3><?php the_title(); ?></h3>
                     <?php the_content(); ?>
                     <a href="<?php the_permalink(); ?>" class="btn">Read more</a>
                     <br><br>
                   </div>
                  <?php  }
                   wp_reset_postdata(); 
                }
 
                 else echo 'Записей нет.';
                           // echo "<pre>";
                              //print_r($query);
                           // echo "</pre>";
              ?>
              
//query_posts()
<div>
              <?php
                  $args = [
                    'post_type' => 'business_sercvice',
                    'posts_per_page' => 3,
                    //'offset' => 3, //- после какого поста выводить 
                    'order' => 'ASC'
                  ]; 
                  $custom_posts = get_posts( $args ); ?>
                  <?php foreach( $custom_posts as $post ) : setup_postdata($post); ?>
                      <div class="grid_4">
                         <?php the_post_thumbnail(); ?>
                         <h3><?php the_title(); ?></h3>
                         <?php the_content(); ?>
                         <a href="<?php the_permalink(); ?>" class="btn">Read more</a>
                      </div>
                  <?php endforeach; wp_reset_postdata(); ?>
              </div>