Проблема с пагинацией
-
В настройках WP по умолчанию стоит показ максимум 10 записей. Подключил плагин wp-pagenavi, в файлах index.php и category_slug прописал ф-цию
<?php wp_pagenavi();?>
, появилась пагинация. Но при переключении на другие страницы, выдаются теже записи, которые изначально были на странице 1. Точно такая же ситуация если пользуюсь стандартной ф-цией paginate_links(). Помогите…
-
Возможно вы задаете неправильные параметры. Вот пример из справки
Basic Example To add pagination to your search results and archives, you can use the following example: <?php global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages ) ); ?>
я пробовал вставлять такой код из справки — результат тотже 🙁
вот ссылка можете проверить пагинациюОчень жаль, что вам не удается настроить пагинацию. Даже не знаю, что подсказать, может быть вы предоставите не только сайт, но и исходный код страницы? Эта тема с сайта WordPress.org?
У МЕНЯ ВООБЩЕ ПАГИНАЦИЯНЕ РАБОТАЕТ
Если вы создаёте новый объект WP_Query, или используете функцию wp_query(), то в аргументах обязательно должен быть указан параметр ‘paged’=>get_query_var(‘paged’)
Если вы создаёте новый объект WP_Query, или используете функцию wp_query(), то в аргументах обязательно должен быть указан параметр ‘paged’=>get_query_var(‘paged’)
Спасибо большое, помогло! 🙂 Только теперь на index.php отображается последняя страница(лишняя), на которую нажимаешь, а она пустая, там записей нет. Это видно на сайте если нажмете на название сайта в хедере -> далее внизу последняя страница в пагинации. Странно еще то, что если нажмете первый пункт меню(Анекдоты — используется шаблон category-anekdoty.php) то там пагинация отображается правильно. Построен этот шаблон так как и index.php
Эта лишняя страница может выводиться из-за блока «Случайное фото» ?а можно код ваш целиком посмотреть ато у меня ничего не получается
Да, пожалуйста
<div class="output-post"> <?php $main_page = new WP_Query(array('category_name' =>'anekdoty', 'paged'=>get_query_var('paged'))); ?> <?php if($main_page->have_posts()): while($main_page->have_posts()): $main_page->the_post(); ?> <div class="joke"> <span>* * *</span> <?php the_content(); ?> </div> <?php endwhile; ?> <?php endif; ?> </div>
Покажите код вместе с блоком «Случайное фото»
А вот при выводе записей произвольного типа пагинация не работает. Вот код:
<?php $gallery = new WP_Query(array('post_type' => 'gallery_photo', 'paged'=>get_query_var('paged'), 'posts_per_page' => 30)); ?> <?php if($gallery->have_posts()): while($gallery->have_posts()): $gallery->the_post(); ?> <?php the_content(); ?> <a rel="prettyPhoto[gallery_1]" href="<?php $perem = url_post()/* пользовательская ф-ция */; echo $perem[0]; ?>"> <?php the_post_thumbnail(array(100,100)) ?> </a> <?php endwhile; ?> <? endif; ?>
Покажите код вместе с блоком «Случайное фото»
Нет этот блок тут ни при чем. Я убирал его полностью со страницы и всё равно показывается лишняя страница в пагинации. Тут дело в чем-то другом…
в каком месте стоит
<?php wp_pagenavi();?>
? Она должна стоять между<?php endwhile; ?>
и<? endif; ?>
вот так:
<?php endwhile; ?> <?php wp_pagenavi();?> <? endif; ?>
в таком случае пагинация вообще исчезает. Я напишу код чтоб понятнее было:
файл index.php — основной файл, который загружается при старте страницы
проблема: отображение последней «пустой» страницы в пагинации<?php get_header() ?> <div id="templatemo_content_wrapper"> <?php get_sidebar('left') ?> <?php get_sidebar('right') ?> <!-- основной блок контента --> <div id="templatemo_content"> <!-- случайное фото - выводится скриптом rotate.php--> <div id="banner"> <h2>Случайное фото</h2> <?php $rand_photo = new WP_Query(array( 'post_type' => 'gallery_photo', 'orderby' => 'rand', 'posts_per_page' => 1)) ?> <?php if($rand_photo->have_posts()): while($rand_photo->have_posts()): $rand_photo->the_post(); ?> <?php the_post_thumbnail(array(550,9999)) ?> <?php endwhile; ?> <?php else: ?> <? endif; ?> </div> <!-- конец случайное фото --> <!-- блок вывода анекдотов --> <div class="output-posts bord-radius"> <?php $main_page = new WP_Query(array('category_name' =>'anekdoty', 'paged'=>get_query_var('paged'))); ?> <?php if($main_page->have_posts()): while($main_page->have_posts()): $main_page->the_post(); ?> <div class="joke"> <span>* * *</span> <?php the_content(); ?> <!-- звездный рейтинг постов --> <div class="rating"><?php if(function_exists('the_ratings')) { the_ratings(); } ?></div> <!-- конец звездный рейтинг постов --> <!-- категория, автор --> <div class="blok">Категория: <span class="category-name"><?php the_category('single'); ?></span></div> <div class="blok">Автор: <span class="author"><a href="<?php home_url() ?>/?author=<?php echo $post->post_author; ?>"><?php the_author(); ?></a></span></div> <!-- конец категория, автор --> </div> <?php endwhile; ?> <?php else: ?> <?php endif; ?> </div> <!-- конец блок вывода анекдотов --> <?php wp_pagenavi() ?> </div> <!-- конец основной блок контента --> <?php get_footer() ?>
файл category-anekdoty.php — открывается при нажатии на пункт меню «Анекдоты»
пагинация работает отлично, проблем нет<?php get_header() ?> <div id="templatemo_content_wrapper"> <?php get_sidebar('left') ?> <?php get_sidebar('right') ?> <!-- основной блок контента --> <div id="templatemo_content"> <h3><?php wp_title('') ?></h3> <!-- блок вывода анекдотов --> <div class="output-posts bord-radius"> <?php $main_page = new WP_Query(array('category_name' => 'anekdoty', 'paged'=>get_query_var('paged'))); ?> <?php if($main_page->have_posts()): while($main_page->have_posts()): $main_page->the_post(); ?> <div class="joke br-radius-none"> <span>* * *</span> <?php the_content(); ?> <!-- звездный рейтинг постов --> <div class="rating"><?php if(function_exists('the_ratings')) { the_ratings(); } ?></div> <!-- конец звездный рейтинг постов --> <!-- категория, автор --> <div class="blok">Категория: <span class="category-name"><?php the_category('single'); ?></span></div> <div class="blok">Автор: <span class="author"><a href="<?php home_url() ?>/?author=<?php echo $post->post_author; ?>"><?php the_author(); ?></a></span></div> <!-- конец категория, автор --> </div> <?php endwhile; ?> <?php else: ?> <?php endif; ?> </div> <!-- конец блок вывода анекдотов --> <?php wp_pagenavi() ?> </div> <!-- конец основной блок контента --> <?php get_footer() ?>
файл category-kartinki.php — срабатывает при нажатии на пункт меню «Картинки»
проблема: не работает пагинация, использует новый тип записей,нужно отобразить 50 записей<?php get_header() ?> <div id="templatemo_content_wrapper"> <?php get_sidebar('left') ?> <?php get_sidebar('right') ?> <!-- основной блок контента --> <div id="templatemo_content"> <div class="output-posts gallery" style="padding: 10px 24px;"> <?php $gallery = new WP_Query(array('post_type' => 'gallery_photo', 'posts_per_page' => 50, 'paged'=>get_query_var('paged'))); ?> <?php if($gallery->have_posts()): while($gallery->have_posts()): $gallery->the_post(); ?> <?php the_content(); ?> <a rel="prettyPhoto[gallery_1]" href="<?php $perem = url_post()/* пользовательская ф-ция */; echo $perem[0]; ?>"> <?php the_post_thumbnail(array(100,100)) ?> </a> <?php endwhile; ?> <?php wp_pagenavi() ?> <? endif; ?> </div> <!-- конец блок вывода анекдотов --> </div> <!-- конец основной блок контента --> <?php get_footer() ?>
Индексный файл попробуйте так:
<?php get_header() ?> <div id="templatemo_content_wrapper"> <?php get_sidebar('left') ?> <?php get_sidebar('right') ?> <!-- основной блок контента --> <div id="templatemo_content"> <!-- случайное фото - выводится скриптом rotate.php--> <div id="banner"> <h2>Случайное фото</h2> <?php $rand_photo = new WP_Query(array( 'post_type' => 'gallery_photo', 'orderby' => 'rand', 'posts_per_page' => 1)) ?> <?php if($rand_photo->have_posts()): while($rand_photo->have_posts()): $rand_photo->the_post(); ?> <?php the_post_thumbnail(array(550,9999)) ?> <?php endwhile; ?> <?php else: ?> <? endif; ?> </div> <!-- конец случайное фото --> <!-- блок вывода анекдотов --> <div class="output-posts bord-radius"> <?php $main_page = new WP_Query(array('category_name' =>'anekdoty', 'paged'=>get_query_var('paged'))); ?> <?php if($main_page->have_posts()): while($main_page->have_posts()): $main_page->the_post(); ?> <div class="joke"> <span>* * *</span> <?php the_content(); ?> <!-- звездный рейтинг постов --> <div class="rating"><?php if(function_exists('the_ratings')) { the_ratings(); } ?></div> <!-- конец звездный рейтинг постов --> <!-- категория, автор --> <div class="blok">Категория: <span class="category-name"><?php the_category('single'); ?></span></div> <div class="blok">Автор: <span class="author"><a href="<?php home_url() ?>/?author=<?php echo $post->post_author; ?>"><?php the_author(); ?></a></span></div> <!-- конец категория, автор --> </div> <?php endwhile; ?> <?php wp_pagenavi() ?> <?php endif; ?> </div> <!-- конец блок вывода анекдотов --> </div> <!-- конец основной блок контента --> <?php get_footer() ?>
А в категории сколько у вас там всего записей?
- Тема «Проблема с пагинацией» закрыта для новых ответов.