Навигация при 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 также работает.


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

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

  1. # 57 tvenjoy 06.12.2011 в 13:28

    У меня в категориях при переходе на вторую страницу отправляет на главную

    а на главной при переходе на вторую страницу выдает белый экран

    подскажите что делать?

    вот что у меня:

     

    <?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; ?>

  2. # 56 Мю Юм (1) 21.10.2011 в 01:03

    у меня  формируется вывод записей так:

    <?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 постраничной навигацией...

  3. # 55 Денис 07.09.2011 в 02:44

    Большое спасибо за инфу. Полночи бился. Вам и marfix — огромное спасибо!

  4. # 54 Goryny4 13.07.2011 в 17:22

    Огромное спасибо!!!! очень поиогло

  5. # 53 Сергей 13.03.2011 в 19:44

    А у меня в индексе (статейный каталог) выводится так:

    <?php wp_get_archives ('type=postbypost&limit=10'); ?>

    и тоже не пролистывается (даже если вручную ввожу /page/2/). Ошибки не выдает, но показывает первую страницу. В категориях и архивах работает нормально. Не подскажете, как забороть?

    Пробовал такое:

    <?php wp_get_archives ($query_string.'type=postbypost&limit=10'); ?>

    Но так при пролистывании кажет типа архивы по месяцам. Если ставлю $query_posts, ничего не меняется.

  6. # 52 deftoettan (1) 01.03.2011 в 14:25

    спасибо вам за данный пост, несколько дней выносил свой мозг в поисках решения проблемы !

  7. # 51 AntiDen 17.02.2011 в 20:42

    Соника спасибо, перерыл весь инет нигде не нашел толкового ответа и только Вы подсказали правильный ответ. Очень помогли.

  8. # 50 Сергей Симонов (1) 13.02.2011 в 19:04

    Спасибо Вам большое. Очень и очень помог Ваш пост!

  9. # 49 abloko (1) 21.12.2010 в 12:24

    Итог (проверено на 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, сохранив навигацию и количество записей по умолчанию».

  10. # 48 Кира (1) 01.11.2010 в 21:05

    Спасибо!!!

    В WP 3.0.1 заработало только решение с жестко прописанным к-вом страниц.

    Остальные — не хотят :)

  11. # 47 Дмитрий (1) 26.09.2010 в 22:55

    Такая проблема:

    дан шаблон отдельной категории:

    <?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 (); ?>

    Пример: www.odblog.ru/note

    Вывод постов как на главной. Но есть проблема с навигацией.

    С$query_string. проблемы с навигацией пропадают, но пропадают и картинки (теряется вывод постов, как на главной)

    Как эту проблему можно избежать?

  12. # 46 Женя 06.09.2010 в 02:37

    Вот у меня большая проблема. Хотелось бы со Странички сделать навигацию как на главной. Тойсть не 1 пост написать и все. А сделать чтоб можно было вписывать как на главной... Подскажите пожайлуста а то 2й день не как не разберусь(((((

  13. # 45 Zyama 02.09.2010 в 22:48

    Здрасцех! Я сделал шаблон 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О Скажите, как сделать так, чтобы поставить условие, чтобы контент выводился только на первой страничке?

     

  14. # 44 Look 10.08.2010 в 14:58

    <strong><?php query_posts($query_string.'&cat=своя категория'); ?> </strong>Сделал так, но теперь не выводятся записи из этой категории на странице. Что делать?<strong> </strong>

  15. # 43 LERA_SEKC (1) 04.07.2010 в 23:18

    Дорогая Соня! :-*

    Я специально зашел на ваш прелестный сайт, что бы поблагодарить и отблагодарить за ИНФУ!

    Я тоже жгучая БЛОНДИНКО и мы должны помогать друг другу в личной жизни...

    Я имею ввиду BOM,  переписываю сейчас движок FACEBOOK на русский и не могу понять почему файлы в UTF-8 у меня не работали.  Вы помогли мне разобраться в этой проблеме.  Причина была — BOM!

     

    ОГРОМНОЕ СПАСИБО ВАМ СОНЯ! ЦЕЛУЮ РУЧКИ! :-***

  16. # 42 sonika 02.07.2010 в 17:37

    Сергей, см. в сторону codex.wordpress.org/Funct...e/wp_reset_query

  17. # 41 Сергей (4) 01.07.2010 в 09:36

    Добрый день. У меня такая проблема.

    Сайт состоит из 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">' . __ ('&raquo;', '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ой категории.

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

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


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


Subscribe without commenting

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

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