Навигация при query_posts

[ ←Вернуться к стандартному виду ]

Печатная версия

Случайно нашла отличное решение проблем с навигацией при использовании query_posts

Одно решение было известно отсюда:

вместо:

<code class="php">&lt;?php query_posts('cat=1'); ?&gt;
&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;</code>

использовать:

<code class="php">&lt;?php $numpost=10;//сколько записей на одной странице нам надо вывести
if($paged&gt;1) $offset=$numpost*($paged-1);
else $offset=0;//чтобы знать, с какой статьи начать, если это не первая страница
query_posts('cat=1&amp;offset='.$offset.'&amp;showposts='.$numpost); ?&gt;
&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;</code>

Я так всегда и делала, пока задача не повернулась ж… другим боком: количеством записей необходимо управлять из админки (Настройки — Чтение). В примере выше количество выводимых записей ограничено в самом коде: $numpost=10

При всем при этом еще и плагин wp-pagenavi (v. 2.20) отказывался работать как положено.

Спас меня такой код:

<code class="php">&lt;?php query_posts($query_string.'&amp;cat=1'); ?&gt;
&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;</code>

Такой расклад сразу понравился и плагину wp-pagenavi, и wp 2.2.3, и мне тоже :)

p.s.
на wp 2.3.1 также работает.


Комментариев: 64, оставить свой »

Страницы: [7] 6 5 4 3 2 1 » Показать все

  1. # 64 Алексей 08.04.2014 в 12:24

    Добрый день! Имеется вопрос, быть может Вы сможете на него ответить.
    Итак, на главной странице шаблона, над которым я работаю, имеется сразу три цикла:
    1) Случайные посты,
    2) Посты из категории А,
    3) Посты из категории Б.
    Каждый цикл выглядит примерно так:
    <?php $posts = query_posts($query_string . '&posts_per_page=4'); if( have_posts() ){ while( have_posts() ){ the_post(); ?>
    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
    </div>
    <?php }  ?>
    <div class="navigation">
    <div class="next-posts"><?php next_posts_link(); ?></div>
    <div class="prev-posts"><?php previous_posts_link(); ?></div>
    </div>
    <?php
    }
    else
    echo "<h2>Записей нет.</h2>";  ?>
    <?php wp_reset_query(); ?>

    Задача: под каждым из циклов должны быть ссылки на предыдущую и следующую страницы. Применяемая мной конструкция создаёт эти ссылки, НО! при нажатии, скажем, на "следующая страница" под любым из циклов показывается следующая страница всех имеющихся циклов, а нужно чтобы только для каждого из них был свой *_posts_link();. Каким образом это можно реализовать?

  2. # 63 Marina 05.06.2013 в 22:36

    Большое СПАСИБО!!!! Очень выручили!!!

  3. # 62 Thomas 21.05.2013 в 22:58

    уверен, что не сможете сделать нормальную пагинацию на такой вот рубрике

    <?php
    function filter_where($where = '') {
    //за последние 30 дней
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
    return $where;
    }
    add_filter('posts_where', 'filter_where');
    $args = array(
    'orderby' => 'meta_value_num',
    'meta_key' => 'ratings_score',
    );
    query_posts ( $args );
    ?>
     
    чтобы я не делал ничего не помогает. А если б заработало, было б просто превосходно. Кажется суть в том что в рубрике category-2.php нет записей, но собираются и сортируются они в ней, так как всё это прописано в шаблоне category-2.php

  4. # 61 Виталий (1) 17.04.2012 в 15:02

    Здравствуйте Sonika.Читал не понял(тугодум).Подскажите как мне сделать в категориях постраничный просморт записей а не лентой.Вордпресс 3.3.1

Страницы: [7] 6 5 4 3 2 1 » Показать все

Написать комментарий


Ручная модерация комментов. Все саттелиты — в топку! Даже не сомневайтесь. Для вопросов о вордпресс не по теме поста есть два русскоязычных форума по wordpress.


Подписаться, не комментируя

[ ←Вернуться к стандартному виду ]

Печатная версия