next_posts_link() ничего не возвращает при использовании разбивки на страницы с запросом WP posts

#php #wordpress

#php #wordpress

Вопрос:

Я перелил десятки сообщений и документацию, ничего не помогло.

У меня очень простая проблема: я хочу запросить все сообщения некоторой категории, а затем разделить результаты на страницы. Я пробовал несколько разных вещей, но, по сути, next_posts_link() и get_next_posts_link() никогда ничего не возвращают.

Последний код:

 <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

$args = array(
  'posts_per_page' => 6,
  'paged'          => $paged,
  'cat' => 135
);

$query = new WP_Query( $args ); 
    
?>
    
<?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
    
<div class="med-item talks-texts">
    <p class="bold"><?php the_title(); ?> (<?php the_time('Y'); ?>)</p>
    <?php the_content(); ?>
</div>
    
    
<?php endwhile; endif; ?>
    
<?php next_posts_link(); ?>
  

Ответ №1:

Добавьте параметры в функцию. В вашем случае:

 <?php echo get_next_posts_link('Older', $query->max_num_pages);?>
<?php echo get_previous_posts_link('Newer', $query->max_num_pages);?>
  

Ответ №2:

Мне кажется, что next_post_link() должен быть внутри цикла. У вас есть это снаружи. Подробнее об этом конкретном варианте использования в документах WP для этой функции здесь:

https://developer.wordpress.org/reference/functions/next_posts_link/#div-comment-1297

Обратите внимание на дополнительный параметр, необходимый для пользовательского WP_Query, поскольку это то, что вы используете здесь. Короче говоря:

 // next_posts_link() usage with max_num_pages.
next_posts_link( __( 'Older Entries', 'textdomain' ), $the_query->max_num_pages );