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

  • Привет! Для всех записей сделал кастомный шаблон и вывел там новости. Но пагинация не отображается. Прошу помочь!
    12222

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • А она и не должна здесь отображаться.
    get_the_posts_pagination выводит пагинацию (или она есть) в стандартном цикле.

    У Вас же используется произвольная выборка записей через WP_Query и плюс выбираются сразу все записи (posts_per_page=-1).
    Тут не то что стандартной, а вообще никакой пагинации быть не может — уже выбраны все записи, страницы №2 и т.д. в принципе не существует.

    У Вас в запросе нет ничего необычного. Ничто не мешает использовать стандартный цикл. WP_Query в данном случае лишний.
    А так, вообще, поведение цикла на страницах архивов лучше всего изменять через pre_get_posts.

    @eugsan в таком случае как мне использовать стандартный запрос. Подскажите пожалуйста вы имеете виду query_posts()?

    Пока остается только гадать где и как Вы планируете использовать эту страницу.

    Цикл записей обычно же делается в index.php, archive.php и т.п. Там не нужно никаких WP_Query или query_posts. А просто

    <?php if ( have_posts() ) : ?>
    	<?php while ( have_posts() ) : the_post(); ?>
    		// Вывод поста
    	<?php endwhile; ?>
    <?php else : ?>
    	// Вывод сообщения, что записей нет
    <?php endif; ?>

    И стандартная пагинация будет работать, если добавить.

    Если в качестве главной установлена какая-то другая страница, то этот стандартный код все равно пишете в index.php; создаете пустую страницу на стандартном шаблоне; в настройках ставите, что для вывода записей использовать произвольную страницу и указываете вот эту только созданную. В результате на sitename.ru/pagename (ну или смотря как назовете ее) будет выводиться список записей, и тоже будет работать пагинация.

    Если возьмёте стандартную петлю и в ней укажете название своей таксономии, то при наличии правильного построения шаблона, будет вам счастье.

    
    <?php
    		// Start the loop.
    		while ( have_posts() ) : the_post();
                        // Include the single post content template.
                        get_template_part( 'template-parts/content-page/spravka-page', 'page' );
                        // If comments are open or we have at least one comment, load up the comment template.
                        if ( comments_open() || get_comments_number() ) {
    			comments_template();
    			}
                        if ( is_singular( 'attachment' ) ) {
                            // Parent post navigation.
                            the_post_navigation( array(
                                'prev_text' => _x( '<span class="meta-nav">Published in</span><span class="post-title">%title</span>', 'Parent post link', 'ваша тема' ),
                                ) );
    			} elseif ( is_singular( 'ваша таксономия' ) ) {
                                // Previous/next post navigation.
                                the_post_navigation( array(
                                    'next_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Next', 'ваша тема' ) . '</span> ' .
                                    '<span class="screen-reader-text">' . __( 'Next post:', 'ваша тема' ) . '</span> ' .
    				'<span class="post-title">%title</span>',
    				'prev_text' => '<span class="meta-nav" aria-hidden="true">' . __( 'Previous', 'ваша тема' ) . '</span> ' .
    				'<span class="screen-reader-text">' . __( 'Previous post:', 'ваша тема' ) . '</span> ' .
    				'<span class="post-title">%title</span>',
    				) );
                                }
    			// End of the loop.
    		endwhile;
    		?>
    
    • Ответ изменён 1 год, 7 месяцев назад пользователем legal2019.
Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Вывод пагинации на сайте» закрыта для новых ответов.