WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Пагинация и WP_Query

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

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

Из поста: WP_Query()

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

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

$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
2 года назад
  • 2
    Kama7099

    Тут все упирается в глобальную переменную $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 2 года назад

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

    Коля месяц назад

    У меня posts_nav_link() вообще ничего не выводит... Код выше тоже не помог.

                                $args = array(
    								'post_type' => 'post',
    								'category_name' => 'sobyitiya',
    								'posts_per_page' => '4',
    								'paged' => get_query_var('paged') ?: 1
    							);
    							$post_query = new WP_Query($args);
    							if($post_query->have_posts() ) :
    								if (isset($_POST['filterYear'])) {
    									$filterYear = $_POST['filterYear'];
    								} else {
    									$filterYear = false;
    								}
    								while($post_query->have_posts() ) : $post_query->the_post();
    									if (in_category('sobyitiya')) :
    										if ($filterYear && date('Y', strtotime(get_the_date())) !== $filterYear) {
    											wp_reset_query(); continue;
    										} ?>
    										<div class="news_ivermon events_ivermon">
    											<a href="<?php the_permalink(get_the_ID()); ?>" class="news_ivermon__link">
    												<img src="<?php if ($eventPhoto = get_field('event_photo')) {echo $eventPhoto;} ?>">
    											</a>
    											<span class="news_ivermon__meta"><?php echo date_i18n('d.m.Y', strtotime(get_the_date())); ?></span>
    											<a href="<?php the_permalink(get_the_ID()); ?>" class="news_ivermon__link">
    												<?php the_title(); ?>
    											</a>
    											<div class="events_ivermon__excerpt"><?php the_excerpt(); ?></div>
    										</div>
    									<?php endif; ?>
    								<?php 
    								endwhile; posts_nav_link(); wp_reset_query();
    							else :
    								echo "<p>На данный момент событий нету.</p>";
    							endif;
    							echo '</div>';
    							?>
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация