@Novichek0342
Я ярик

Как сделать пагинацию на странице поиска (wordpress)?

<?php get_header(); ?>

<div class="content">

<?php
$current = absint(
  max(
    1,
    get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' )
  )
);
$s=get_search_query();
$the_query          = new WP_Query(
  [
    's' =>$s,
    'showposts'=>-1,
    'posts_per_page' => 8,
    'paged'          => $current,
  ]
);
if ( $the_query->have_posts() ) {
    _e("<h2 style='font-weight:bold;color:#000'>Результаты поиска для: ".get_query_var('s')."</h2>");
  while ( $the_query->have_posts() ) {
    $the_query->the_post(); ?>
    <div class="blockpost">
<h2><?php the_title(); ?></h2>
<p><?php if(get_the_excerpt()){
  the_excerpt();
}else {
  the_content();
} ?> </p>
</div>
  <?php }
  wp_reset_postdata();

  $pagination = wp_kses_post(
    paginate_links(
      [
        'total'   => $query->max_num_pages,
        'current' => $current,
      ]
    )
  );

  echo "<div class=pages-of-posts>".$pagination."</div>";
}else{
    ?>
            <h2>Ничего не найдено</h2>
              <p>Простите, но по данному запросу ничего не найдено.</p>
    <?php } 
      ?>

            </div>
<?php get_footer(); ?>

Есть такой код на вордпресс в странице search.php. Работает все как надо, вот только никак не хочет выводить пагинацию...
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов zolin.digital
Вам лучше не изобретать велосипед с кастомным запросом WP_Query(), а использовать глобальный. Проще всего скопировать шаблон search.php из любой стандартной темы

<?php get_header(); ?>

	<section id="primary" class="content-area">
		<main id="main" class="site-main" role="main">

		<?php if ( have_posts() ) : ?>

			<header class="page-header">
				<h1 class="page-title">
				<?php
				/* translators: %s: The search query. */
				printf( __( 'Search Results for: %s', 'twentysixteen' ), '<span>' . esc_html( get_search_query() ) . '</span>' );
				?>
				</h1>
			</header><!-- .page-header -->

			<?php
			// Start the loop.
			while ( have_posts() ) :
				the_post();

				/**
				 * Run the loop for the search to output the results.
				 * If you want to overload this in a child theme then include a file
				 * called content-search.php and that will be used instead.
				 */
				get_template_part( 'template-parts/content', 'search' );

				// End the loop.
			endwhile;

			// Previous/next page navigation.
			the_posts_pagination(
				array(
					'prev_text'          => __( 'Previous page', 'twentysixteen' ),
					'next_text'          => __( 'Next page', 'twentysixteen' ),
					'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentysixteen' ) . ' </span>',
				)
			);

			// If no content, include the "No posts found" template.
		else :
			get_template_part( 'template-parts/content', 'none' );

		endif;
		?>

		</main><!-- .site-main -->
	</section><!-- .content-area -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы