Проблема с пагинацией

  • Автор темы Zeka1
  • 53
  • Обновлено
  • 18, May 2024
  • #1
Привет ребята, Может ли кто-нибудь мне здесь немного помочь?

У меня есть этот PHP-код:
 

<?

$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;

$query_args = array(

'post_type' => 'vrvideo',

'posts_per_page' => 5,

'paged' => $paged

);

$loop = new WP_Query( $query_args );

echo '<div class="crp_related "><ul>';

while ( $loop->have_posts() ) : $loop->the_post();

echo '<li><a href="', the_permalink(), '">', the_post_thumbnail('related-thumb'), '</a>';

echo '<span class="crp_title" style="bottom:4px;">';

if (strlen($post->post_title) > 27) {

echo substr(the_title($before = '', $after = '', FALSE), 0, 27) . '...'; }

else {

the_title();

}

echo '</span></li>';

endwhile;

echo '</ul>';

echo '<div class="crp_clear"></div></div>';

?>

<?php if ($loop->max_num_pages > 1) { // check if the max number of pages is greater than 1 ?>

<nav class="prev-next-posts">

<div class="prev-posts-link">

<?php echo get_next_posts_link( 'Older Entries', $loop->max_num_pages ); // display older posts link ?>

</div>

<div class="next-posts-link">

<?php echo get_previous_posts_link( 'Newer Entries' ); // display newer posts link ?>

</div>

</nav>

<?php } ?>

<?php wp_reset_postdata(); ?>

PHP: На моей странице 6 сообщений. Нумерация страниц выглядит нормально и показывает 5 сообщений.

Здесь все хорошо. Проблема в том, что когда я меняю страницу, на всех страницах всегда отображаются одни и те же 5 сообщений. Что я сделал не так? Может быть, $loop->max_num_pages? ПОМОЩЬ

Zeka1


Рег
22 Nov, 2013

Тем
1

Постов
8

Баллов
18
  • 21, May 2024
  • #2
Что? Я просто поменялся ссылками, вот и все. Если там что-то сломалось, значит, что-то совершенно не так в ядре, а не в данном фрагменте. Что возвращает $loop->max_num_pages (просто повторите это)?
 

Andrey681


Рег
15 Jan, 2013

Тем
1

Постов
3

Баллов
13
  • 01, Jun 2024
  • #3
Пусто, вот пример:

Страница с 6 сообщениями.

При входе на страницу появляется 5 результатов (post1,post2,post3,post4,post5) и нумерация страниц ниже.

Когда вы нажимаете на «Старые записи», появляются точно такие же 5 результатов (post1, post2, post3, post4, post5) вместо post6.

И если вы снова щелкнете по «Старым записям» (страница 3), снова появятся точно такие же результаты.

и так далее... Я попытался заменить код:
 
<?php
// next_posts_link() usage with max_num_pages
next_posts_link( 'Older Entries', $loop->max_num_pages );
previous_posts_link( 'Newer Entries' );
?>
PHP: Кому:
  <?php if ($loop->max_num_pages > 1) { // check if the max number of pages is greater than 1 ?> <nav class="prev-next-posts"> <div class="prev-posts-link"> <?php echo get_next_posts_link( 'Older Entries', $loop->max_num_pages ); // display older posts link ?> </div> <div class="next-posts-link"> <?php echo get_previous_posts_link( 'Newer Entries' ); // display newer posts link ?> </div> </nav> <?php } ?>
PHP: работает точно с той же проблемой, поэтому, вероятно, проблема в приведенном выше коде.
 

гоша2


Рег
19 Mar, 2016

Тем
1

Постов
2

Баллов
12
  • 01, Jun 2024
  • #4
Это произойдет, если вы нажмете обе ссылки или только ту, которая должна давать вам более старые сообщения? P.S. Ваш класс prev-posts-link включает следующие сообщения и наоборот для второго. Сначала исправьте это, чтобы избежать путаницы.
 

111Ser111


Рег
02 Jul, 2012

Тем
0

Постов
3

Баллов
3
  • 08, Jun 2024
  • #5
Да, это странно, хе-хе Здесь идет эхо:
 
$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
$query_args = array(
'post_type' => 'vrvideo',
'posts_per_page' => 5,
'paged' => $paged
);

$loop = new WP_Query( $query_args );
PHP: Возврат:
  <?php // next_posts_link() usage with max_num_pages next_posts_link( 'Older Entries', $loop->max_num_pages ); previous_posts_link( 'Newer Entries' ); ?>
Код (разметка): С этим кодом отображаются только 2 страницы, как и должно быть:
 2
PHP: Проблема в том, что на второй странице всегда отображаются одни и те же результаты... Проблема должна быть где-то здесь:
 <?php echo $loop->max_num_pages; ?>
PHP:
 

3ork


Рег
18 Feb, 2013

Тем
1

Постов
2

Баллов
12
  • 10, Jun 2024
  • #6
 

<?php if ($loop->max_num_pages > 1) { // check if the max number of pages is greater than 1 ?>

<nav class="prev-next-posts">

<div class="prev-posts-link">

<?php echo get_previous_posts_link( 'Older Entries', $loop->max_num_pages ); // display older posts link ?>

</div>

<div class="next-posts-link">

<?php echo get_next_posts_link( 'Newer Entries' ); // display newer posts link ?>

</div>

</nav>

<?php } ?>
PHP: And this?
 

Morgon


Рег
28 Apr, 2014

Тем
0

Постов
3

Баллов
3
  • 10, Jun 2024
  • #7
Попробуйте добавить wp_reset_query() после всех вызванных запросов. Это все, о чем я могу думать, не имея доступа к данным файлам/веб-сайту (хотя не стесняйтесь писать мне в личку, если вы готовы поделиться этими подробностями; никаких затрат).
 

MsCoD3R


Рег
01 Aug, 2014

Тем
1

Постов
2

Баллов
12
  • 10, Jun 2024
  • #8
Привет, Я решил проблему Я заменил эту строку:
 'paged' => get_query_var( 'paged' )
PHP: С этим:
 'paged' => $paged
PHP: Теперь работает отлично. В любом случае спасибо за попытку мне помочь
 

Эдуард Коркунов


Рег
27 Feb, 2013

Тем
1

Постов
2

Баллов
12
  • 10, Jun 2024
  • #9
Причина, по которой это сработало, заключалась в том, что вы использовали неправильное имя для вызова в get_query_var(), когда присваивали его переменной $paged — вы использовали «page» внутри них, но вы использовали «paged» в том, который работает. ..
 

moscowwalks


Рег
01 Jan, 2011

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966

Интересно