WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

Пагинация и WP_Query

В посте у тебя написано:

"Можно измерить значение posts_per_page на конкретное число необходимых нам постов на одной странице. Например, posts_per_page=10 выведет только 10 постов, а если при этом в конце цикла поставить тег шаблона posts_nav_link(), то под циклом появится ссылка для перехода к следующим 10-ти постам (ссылка пагинации)."

Именно это мне и нужно! Я много чего на твоем сайте на эту тему перерыл, но этот абзац описывает то что нужно сделать лучшим способом...но как это сделать?

Прости что много кода...Это моя вся кастомная страница:

$classes = new WP_Query(array(
	'category_name' => 'classes',
	'posts_per_page' => '5'
)); 

тут цикл с использованием переменной classes, дальше конец цикла где должна быть пагинация:

<?php endwhile; ?>

	<?php  echo posts_nav_link(); ?>

	<p class="pagination">

	:(   НУ ЧТО ЖЕ НУЖНО-ТО ЗДЕСЬ УКАЗАТЬ??? :(

	</p><!--pagination-->

<?php else: ?><p>пустой раздел</p>

<?php  endif; ?>

<?php wp_reset_postdata(); ?>
1
Wireinet2 9 месяцев назад
  • 1
    Kama4477

    Тут все упирается в глобальную переменную $wp_query... У меня там немного не правильно было написано, подправил...

    Короче, надо делать так:

    <?php
    global $wp_query;
    
    $wp_query = new WP_Query(array(
    	'category_name' => 'classes',
    	'posts_per_page' => '5',
    	'paged' => get_query_var('paged') ?: 1 // страница пагинации
    ));
    
    while( have_posts() ){
    	the_post();
    
    	the_title();
    	// Цикл Цикл Цикл ...
    }
    
    posts_nav_link(); // пагинация - echo тут не надо
    
    wp_reset_query(); // сброс $wp_query
    ?>
    Wireinet 9 месяцев назад

    Спасибо тебе огромное! Честно признаюсь offset для меня загадка страшная...не пойму как это работает...прочитал определение на твоем сайте, тем не менее мало просвятился...спасибо за код-сегодня же буду пробовать, отпишусь здесь обязательно!

    Wireinet 9 месяцев назад

    Нет слов! Ты маг!
    Спасибо за помощь! Заработало!

    Wireinet 9 месяцев назад

    Так...тут одна проблема в коде...Например..записей 8! Ставишь 5 на страницу и при переходе на следующую их снова 5..т.е. снова первые подставляются.

    Kama 9 месяцев назад

    offset на paged поменяй (я в примере выше уже поменял).

    $wp_query = new WP_Query(array(
    	'category_name' => 'classes',
    	'posts_per_page' => '5',
    	'paged' => get_query_var('paged') ?: 1 // страница пагинации
    ));
    Wireinet 9 месяцев назад

    Отлично! Просто магия! Спасибо тебе за помощь!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.