Навигация при query_posts
[ ←Вернуться к стандартному виду ]
Случайно нашла отличное решение проблем с навигацией при использовании query_posts
Одно решение было известно отсюда:
вместо:
<?php query_posts('cat=1'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
использовать:
<?php $numpost=10;//сколько записей на одной странице нам надо вывести
if($paged>1) $offset=$numpost*($paged-1);
else $offset=0;//чтобы знать, с какой статьи начать, если это не первая страница
query_posts('cat=1&offset='.$offset.'&showposts='.$numpost); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Я так всегда и делала, пока задача не повернулась ж… другим боком: количеством записей необходимо управлять из админки (Настройки — Чтение). В примере выше количество выводимых записей ограничено в самом коде: $numpost=10
При всем при этом еще и плагин wp-pagenavi (v. 2.20) отказывался работать как положено.
Спас меня такой код:
<?php query_posts($query_string.'&cat=1'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Такой расклад сразу понравился и плагину wp-pagenavi, и wp 2.2.3, и мне тоже :)
p.s.
на wp 2.3.1 также работает.
Соника спасибо, перерыл весь инет нигде не нашел толкового ответа и только Вы подсказали правильный ответ. Очень помогли.
спасибо вам за данный пост, несколько дней выносил свой мозг в поисках решения проблемы !
А у меня в индексе (статейный каталог) выводится так:
<?php wp_get_archives('type=postbypost&limit=10'); ?>
и тоже не пролистывается (даже если вручную ввожу /page/2/). Ошибки не выдает, но показывает первую страницу. В категориях и архивах работает нормально. Не подскажете, как забороть?
Пробовал такое:
<?php wp_get_archives($query_string.'type=postbypost&limit=10'); ?>
Но так при пролистывании кажет типа архивы по месяцам. Если ставлю $query_posts, ничего не меняется.
Огромное спасибо!!!! очень поиогло
Большое спасибо за инфу. Полночи бился. Вам и marfix - огромное спасибо!
у меня формируется вывод записей так:
<?php $postslist = get_posts('numberposts=-1&orderby=data&o rder=DESC&category=3'); ?>
<?php foreach ($postslist as $post) : setup_postdata($post); ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title();?></a></h3>
..
<?php endforeach; ?>
и как связать вывод записей с постраничной навигацией не могу понять..( стандартные выводы ничего не дают, плагины тоже не вызывают реакции
и самое непонятное, что в гугле вообще такого не нахожу.. - как связать get_posts c постраничной навигацией..
У меня в категориях при переходе на вторую страницу отправляет на главную
а на главной при переходе на вторую страницу выдает белый экран
подскажите что делать?
вот что у меня:
<?php
global $query_string;
$i = 0;
if (is_category()) query_posts($query_string . "&showposts=$post_number&paged=$paged&cat=$cat");
else query_posts($query_string . "&showposts=$post_number&paged=$paged");
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $i++; ?>
<?php include(TEMPLATEPATH . '/includes/entry.php'); ?>
<?php endwhile; ?>
Та же трабла, только используется отдельный файл loop.php (шаблон
Sight 1.0 от WPSHOWER)
<?php if (is_home()) { query_posts($query_string.'&cat=5,19,20'); } ?>
<?php if ( have_posts() ) : ?>
<div id="loop" class="<?php if ($_COOKIE['mode'] == 'grid') echo 'grid'; else echo 'list'; ?> clear">
<?php while ( have_posts() ) : the_post(); ?>
я сделала так, осталась еще одна проблема:
контент переключается, а активная страница всегда №1
Т.е. на какую ни перейдешь, всегда пишется №1 из.. (10). Подскажите, пжалст как это исправить?
Спасибо, код реально помог с навигацией ! ! ! и PageNavi работает как нужно .
Здравствуйте Sonika.Читал не понял(тугодум).Подскажите как мне сделать в категориях постраничный просморт записей а не лентой.Вордпресс 3.3.1
уверен, что не сможете сделать нормальную пагинацию на такой вот рубрике
<?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
Большое СПАСИБО!!!! Очень выручили!!!
Добрый день! Имеется вопрос, быть может Вы сможете на него ответить.
Итак, на главной странице шаблона, над которым я работаю, имеется сразу три цикла:
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();. Каким образом это можно реализовать?