Навигация при 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
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; ?>
у меня формируется вывод записей так:
<?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 постраничной навигацией...
Большое спасибо за инфу. Полночи бился. Вам и marfix — огромное спасибо!
Огромное спасибо!!!! очень поиогло
А у меня в индексе (статейный каталог) выводится так:
<?php wp_get_archives ('type=postbypost&limit=10'); ?>
и тоже не пролистывается (даже если вручную ввожу /page/2/). Ошибки не выдает, но показывает первую страницу. В категориях и архивах работает нормально. Не подскажете, как забороть?
Пробовал такое:
<?php wp_get_archives ($query_string.'type=postbypost&limit=10'); ?>
Но так при пролистывании кажет типа архивы по месяцам. Если ставлю $query_posts, ничего не меняется.
спасибо вам за данный пост, несколько дней выносил свой мозг в поисках решения проблемы !
Соника спасибо, перерыл весь инет нигде не нашел толкового ответа и только Вы подсказали правильный ответ. Очень помогли.
Спасибо Вам большое. Очень и очень помог Ваш пост!
Итог (проверено на WP3, странице page с шаблоном для рубрики (категории)):
<?php
query_posts ($query_string.'');
query_posts ('cat=НОМЕР&paged='.$paged);
?>
<?php if (have_posts ()) : while (have_posts ()) : the_post (); ?>
КОД ПОСТА
<?php endwhile; ?>
<?php else : ?>
НЕТ ПОСТОВ
<?php endif; ?>
<?php wp_pagenavi (); ?>
Это решение задачи «Как вывести посты определённой категории на отдельной странице page, сохранив навигацию и количество записей по умолчанию».
Спасибо!!!
В WP 3.0.1 заработало только решение с жестко прописанным к-вом страниц.
Остальные — не хотят :)
Такая проблема:
дан шаблон отдельной категории:
<?php get_header (); ?>
<div id="container">
<div id="content" role="main">
<br />
<h1 class="page-title"><?php
printf ( single_cat_title ( '', false ) );
?></h1><br />
<?php query_posts ('cat=3');?>
<?php get_template_part ( 'loop', 'index' );?>
</div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar (); ?>
<?php get_footer (); ?>
Пример:
Вывод постов как на главной. Но есть проблема с навигацией.
С
$query_string. проблемы с навигацией пропадают, но пропадают и картинки (теряется вывод постов, как на главной)Как эту проблему можно избежать?
Вот у меня большая проблема. Хотелось бы со Странички сделать навигацию как на главной. Тойсть не 1 пост написать и все. А сделать чтоб можно было вписывать как на главной... Подскажите пожайлуста а то 2й день не как не разберусь(((((
Здрасцех! Я сделал шаблон category. Вывел статичный контент в верхней части шаблона:
<?php if ( is_category () ): ?>
<div class="entry">
<?php
$my_id = 34;
$post = get_post ($my_id);
setup_postdata ($post);
?>
<?php query_posts ($query_string.'&cat=134'); ?>
<?php the_content ('Далее...'); ?>
</div>
<?php endif; ?>
Внизу вывод навигации:
<div class="pagenavi"><?php if (function_exists ('wp_pagenavi')) { wp_pagenavi (); } ?></div>
И получилось так, что при переходе на последующие странички анонсы записей меняются, а верхний статичный выведеный текст остается. Получается дублирование контента, что не хорошо для SEО Скажите, как сделать так, чтобы поставить условие, чтобы контент выводился только на первой страничке?
<strong><?php query_posts($query_string.'&cat=своя категория'); ?> </strong>Сделал так, но теперь не выводятся записи из этой категории на странице. Что делать?<strong> </strong>Дорогая Соня! :-*
Я специально зашел на ваш прелестный сайт, что бы поблагодарить и отблагодарить за ИНФУ!
Я тоже жгучая БЛОНДИНКО и мы должны помогать друг другу в личной жизни...
Я имею ввиду BOM, переписываю сейчас движок FACEBOOK на русский и не могу понять почему файлы в UTF-8 у меня не работали. Вы помогли мне разобраться в этой проблеме. Причина была — BOM!
ОГРОМНОЕ СПАСИБО ВАМ СОНЯ! ЦЕЛУЮ РУЧКИ! :-***
Сергей, см. в сторону
Добрый день. У меня такая проблема.
Сайт состоит из 3х колонок
1 колонка
<?php query_posts ($query_string . '&cat=4&showposts=10'); ?>
<?php if ( have_posts () ) : while ( have_posts () ) : the_post (); ?>
<div class="item"><h2><a href="<?php the_permalink () ?>"><?php the_title (); ?></a></h2>
<?php the_content («„); ?></div>
<?php endwhile; else: ?>
<p><?php _e ('Нет новых компаний'); ?></p>
<?php endif; ?>
2 колонка вывод одиночной записи:
<?php if (have_posts ()) : while (have_posts ()) : the_post (); ?>
<h2><?php the_title (); ?></h2>
<DIV class=“item» ><?php the_content ('<p class="serif">' . __ ('»', 'kubrick') . '</p>'); ?>
</div>
<? //php comments_template (); ?>
<?php endwhile; else: ?>
<p><?php _e ('Информация не найдена', 'kubrick'); ?></p>
<?php endif; ?>
3 колонка:
<?php query_posts ($query_string . '&cat=3&showposts=10'); ?>
<?php if ( have_posts () ) : while ( have_posts () ) : the_post (); ?>
<div class="item"><h2><a href="<?php the_permalink () ?>"><?php the_title (); ?></a></h2>
<?php the_content (""); ?></div>
<?php endwhile; else: ?>
<p><?php _e ('Нет новых компаний'); ?></p>
<?php endif; ?>
при выводе одиночной записи, в 1ой и 3ей колонке также выводится запись 2ой колонки, хотя должно выводится по 10 записей 3ей и 4ой категории.