Вывод всех записей c пагинацией на отдельной странице в WordPress

Уроки web-дизайна

Появилась необходимость вывести записи на отдельной странице с выводом пагинации внизу.

Для того, чтобы решить данную проблему необходимо создать шаблон страницы WordPress. Как создать шаблон в WordPress расскажу в следующей статье. После того, как вы создали шаблон с нужным вам оформлением, в блоке где у вас выводится основной контент, необходимо вставить следующий код:

<?php
                          $count_items = 10;
                          $paged = get_query_var( 'paged', 1 );
                          $id = get_category_by_slug( 'post' )->cat_ID;
                          $recent = new WP_Query( "cat=$id&posts_per_page=$count_items&paged=$paged" );
                      ?>
                      <?php if ( $recent->have_posts() ) { while ( $recent->have_posts() ) { $recent->the_post(); ?>
                          <div class="article-list-block">
                              <div class="article-image"> <?php the_post_thumbnail('img_post_size'); ?> </div>
                              <div class="article-block-info">
                                  <div class="article-date"><?php the_time('j F Y'); ?></div>
                                  <h3 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
                                  <p class="article-body"> <?php the_excerpt(); ?> </p>
                                  <a href="<?php the_permalink(); ?>">Подробнее</a>
                              </div>
                          </div>
                      <?php } ?>
                      <?php wp_pagenavi( array( 'query' => $recent ) ); ?>
                      <?php } else { ?>
                          <p>Записей нет.</p>
                      <?php } ?>

Разберем данный код по порядку. В данном части создаем запрос с необходимыми параметрами.

<?php
                          $count_items = 10;//кол-во выводимых элементов на странице
                          $paged = get_query_var( 'paged', 1 );//Получаем текущую страницу
                          $id = get_category_by_slug( 'post' )->cat_ID;//получаем id рубрики. У меня рубрика всех записей.
                          $recent = new WP_Query( "cat=$id&posts_per_page=$count_items&paged=$paged" );//выполняем запрос по параметрам указанных выше
                      ?>

Далее идет вывод записей в цикле и обертка всеми необходимыми тэгами:

<?php if ( $recent->have_posts() ) { while ( $recent->have_posts() ) { $recent->the_post(); ?> // цикл с выводом нужных записей
                          <div class="article-list-block">
                              <div class="article-image"> <?php the_post_thumbnail('img_post_size'); ?> </div>// миниатюра записи
                              <div class="article-block-info">
                                  <div class="article-date"><?php the_time('j F Y'); ?></div> // дата публикации
                                  <h3 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> //Заголовок записи
                                  <p class="article-body"> <?php the_excerpt(); ?> </p> // краткое содержимое
                                  <a href="<?php the_permalink(); ?>">Подробнее</a> //ссылка на саму запись
                              </div>
                          </div>
                      <?php } ?>

Ну и сама пагинация, она добавляется при помощи распространенного плагина WP-PageNavi, который можно найти в каталоге WordPress. Выглядит он следующим образом:

И чтобы он заработал вставляем вот такой код:

<?php wp_pagenavi( array( 'query' => $recent ) ); ?>

Куда его вставить можно увидеть в начале статьи, где показан код целиком.

На этом все, если возникнут какие либо вопросы задавайте их в комментариях.

0 0 Голосов
Рейтинг записи

Оцените статью
Портал компьютерной помощи
Подписаться
Уведомление о
guest

1 Комментарий
Старые
Новые Рейтингу
Встроенные отзывы
Посмотреть все комментарии
Юрий
Юрий
1 год назад

Спасибо за статью, код рабочий, установил на боевой проект и все заработало!

1
0
Поделитесь своими мыслями, прокомментируйте.x