Вывод постов на странице, постраничная навигация

Прежде чем я покажу готовый код, давайте подробнее рассмотрим, что имеется ввиду в заголовке и когда это лучше применять.

Вывести посты на странице в WordPress — это значит создать шаблон страницы (page template) и забацать туда цикл, query_posts.

Для чего нужно такое вытворять? Рассмотрим несколько вариантов:

  • представьте, что вам нужно вывести на одной странице записи сразу из нескольких категорий
    query_posts('cat=3,4,5');
  • либо архивы для какого-нибудь типа записей
    query_posts('post_type=artwork');
  • а ещё таким образом можно обобщить на одной странице несколько таксономий, несколько меток и прочее

Вообще можно скомбинировать любые условия, используя эту статью. Параметры, которые описаны для WP_Query также подойдут и для query_posts.

Теперь я думаю порядок действий вам понятен? Создаете шаблон страницы, пихаете наверх query_posts, потом цикл, потом постраничную навигацию…

Кстати о ней. Просто так она не будет работать. Как это исправить?

Пожалуй стоит описать порядок действий более подробно.

  1. Создать шаблон страницы.
  2. Определить номер текущей страницы.
  3. Использовать query_posts с необходимым набором аргументов, при этом не забыв включить в него номер текущей страницы.
  4. Добавить цикл.
  5. Добавить функцию постраничной навигации, например wp_pagenavi().

А теперь полностью готовый код:

<?php 
/*
 * Template name: Моя галерея
 */
$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$params = array(
    'posts_per_page' => 7, // количество постов на странице
    'post_type'       => 'artwork', // тип постов
    'paged'           => $current_page // текущая страница
);
query_posts($params);
 
$wp_query->is_archive = true;
$wp_query->is_home = false;
 
while(have_posts()): the_post();
    /*
    в тело цикла вставьте HTML одного анонса записи, например:
    <h2><?php the_title() ?></h2>
    <p><?php the_content() ?></p>
    */
endwhile;
 
wp_pagenavi(); // функция постраничной навигации

Это конечно же обобщенный пример, поэтому не забудьте про get_header() и get_footer(), если они у вас используются.

Плагин постраничной навигации WP-PageNavi

В предыдущем примере я использовал функцию wp_pagenavi(). Она отвечает за постраничную навигацию и является составляющей частью плагина WP-PageNavi (русское название: Список страниц).

Если вы используете данный код как есть и при этом у вас не установлен WP-PageNavi, то вероятнее всего вы получите ошибку.

Плагин очень легко устанавливается через админку сайта и так же легко настраивается — так что для этих целей рекомендую использовать именно его.

Постраничная навигация на сайте.

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: