Логотип Гродненской почты и поиска
Фев 05

Проблемы wordpressЧастенько, при установке плагина WP-PageNavi или схожего WP Page Numbers, листинг страниц (постраничная навигация) отказывается корректно работать. То есть, новостной поток вроде делится на страницы, но, при попытке перейти на предыдущую, открываются новости все с той же с первой страницы. Связано это с функцией query_posts.

Путем долгих поисков было найдено решение. В файле index.php находим строчку:

1
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

и ставим перед ней следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
#RETRIEVE CATEGORY ID
$category_id = get_cat_id(single_cat_title("9", false)); /* Номер категории для листинга */

#RETRIEVE PAGE
$page = (get_query_var('paged')) ? get_query_var('paged') : 1;

#RETRIEVE PRODUCTS
query_posts("cat=$category_id&paged=$page&posts_per_page=10"); /* Количество записей на одной странице */

#DISPLAY PRODUCTS
while(have_posts()) {
    the_post();
?>
<?php
}
?>

В коде ставите свой номер категории (у нас 9) и свое количество записей, выводимых на одной странице.
Правда, есть подозрение, что, в случае использования нескольких шаблонов для разных категорий новостей, подобный способ может не сработать. 🙂

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

автор Уважаемая редакция


Есть 2 коммент. к “Если у вас не работает постраничная навигация на движке wordpress”

  1. 1. Вячеслав Говорит:

    А если новости идут не через index.php ?

  2. 2. Уважаемая редакция Говорит:

    Вячеслав перед этим говорил (а):

    А если новости идут не через index.php ?

    Без разницы. Допустим у вас две страницы index.php и index1.php на которых транслируются новости из рубрик Новости 1 и Новости 2, соответственно. Находим ту же строку и ставим перед ней тот же код. Но есть подозрение, что листаться будут новости только на index.php.

Написать ответ