Поддержка Проблемы и решения Проблема с пагинацией

  • В настройках WP по умолчанию стоит показ максимум 10 записей. Подключил плагин wp-pagenavi, в файлах index.php и category_slug прописал ф-цию <?php wp_pagenavi();?>, появилась пагинация. Но при переключении на другие страницы, выдаются теже записи, которые изначально были на странице 1. Точно такая же ситуация если пользуюсь стандартной ф-цией paginate_links(). Помогите…

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Возможно вы задаете неправильные параметры. Вот пример из справки

    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() ?>

    А в категории сколько у вас там всего записей?

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Проблема с пагинацией» закрыта для новых ответов.