@Lord_Dantes
раб

Может ли пагинация выводить списки страниц в шаблоне страницы?

У меня есть шаблон страницы, в нем прописано вывод постов "Блог".
<?php
				//
				$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1;
				$params = array(
					'posts_per_page'  => 1, // количество постов на странице
					'post_type'       => 'blog', // тип постов
					'paged'           => $current_page // текущая страница
				);
				query_posts($params); $wp_query->is_archive = true; $wp_query->is_home = false; while(have_posts()): the_post(); ?>

				<div class="col-md-4">
					<div class="blog-item_box">
						<div class="blog-item_img-box"><img src="<?php the_field('img_blog-item') ?>" alt=""></div>
						<div class="blog-item_title"><?php the_title(); ?></div>
						<div class="blog-item_info"><?php the_excerpt(); ?></div><a class="blog-item_details-info" href="<?php the_permalink(); ?>">Узнать подробнее</a>
					</div>
				</div>

			<?php endwhile; wp_pagenavi();?>

Пагинация активируется и показывается на странице. При клике на любую из страниц меня перекидает на главную страницу и адресной строке указывается номер в следующем стиле.
site.ru/blog/page/номер_страницы
~
Читал про архивы и рубрики, в основном у всех проблема с поиском. Возможно нельзя делать пагинацию на обычних шаблонах? Буду благодарен ссылкой или советом по данному поводу. Укажите пожалуйста где очень подробно написано про пагинацию(даже на каме читал хз). Спасибо.
  • Вопрос задан
  • 18 просмотров
Пригласить эксперта
Ответы на вопрос 1
@weart
Код для цикла

if ( is_front_page() ) {
    	$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
  	} 
  	else {
    	$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
  	}

  	$args = array(
  		'posts_per_page' => '1',
  		'post_type'	=> 'blog',
  		'paged' => $paged,
  		'page' => $paged,
    );

	$the_query = new WP_Query($args);

// и так далее


Это выводит номера страниц:

custom_pagination($the_query->max_num_pages, "", $paged);


А это функция кастомной пагинации:

function custom_pagination($numpages = '', $pagerange = '', $page='') {
	if (empty($pagerange)) {
		$pagerange = 2;
	}
	
	if ($numpages == '') {
	  	global $wp_query;
	  	$numpages = $wp_query->max_num_pages;
	  	if(!$numpages) {
	      	$numpages = 1;
	  	}
	}
	
	$pagination_args = array(
	  	'base'            => get_pagenum_link(1) . '%_%',
	  	'format'          => 'page/%#%',
	  	'total'           => $numpages,
	  	'current'         => $page,
	  	'show_all'        => true,
	  	'end_size'        => 1,
	  	'mid_size'        => $pagerange,
	  	'prev_next'       => false,
	  	'prev_text'       => false,
	  	'next_text'       => false,
	  	'type'            => 'plain',
	  	'add_args'        => false,
	  	'add_fragment'    => ''
	);
	
	$paginate_links = paginate_links($pagination_args);
	
	if ($paginate_links) {
		echo "<div class='pagination'>";
		echo $paginate_links;
		echo "</div>";
	}
}
Ответ написан
Ваш ответ на вопрос

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

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