Valonix
@Valonix
Back end / Front end developer

Wordpress Pagination in category.php как можно обойтись стандартной пагинацией?

Обычно выводил пагинацию через Wp Pagenavi. Однако стилизовать очень неудобно его.
Там где new WpQuery я делаю так
$big = 999999999; 

			$pages = paginate_links( array(
		        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
		        'format' => '?paged=%#%',
		        'current' => max( 1, get_query_var('paged') ),
		        'total' => $news_query->max_num_pages,
		        'type'  => 'array',
		    ) );
		    if( is_array( $pages ) ) {
		        $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
		        echo '<ul class="pagination">';
		        foreach ( $pages as $page ) {
		            echo "<li>$page</li>";
		        }
		       echo '</ul>';
		    }
		    ?>

И когда бутстрап получается отличная пагинация. Как это сделать в category.php ?
Я делаю в начале цикла
<?php 
				query_posts( array(
				    'posts_per_page' => 1	,
				    'cat' => $cur_cat_id,
				    'paged' => ( get_query_var('page') ? get_query_var('page') : 1 ),
				));

Потом это как то надо туда же запихнуть? Меня не интересует
<?php previous_posts_link('< previous page', 0); ?> такого рода, мне нужна полноценная пагинация.
  • Вопрос задан
  • 4602 просмотра
Пригласить эксперта
Ответы на вопрос 1
banderos120
@banderos120
Играю на балалайке
function theme_pagination() {
	global $wp_query, $wp_rewrite;
	$pages = '';
	$max = $wp_query->max_num_pages;
	if (!$current = get_query_var('paged')) $current = 1;
	$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
	$a['total'] = $max;
	$a['current'] = $current;

	$total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
	$a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
	$a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
	$a['prev_text'] = '&laquo;'; //текст ссылки "Предыдущая страница"
	$a['next_text'] = '&raquo;'; //текст ссылки "Следующая страница"

	if ($max > 1) echo '<div class="navigation">';
	if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
	echo $pages . paginate_links($a);
	if ($max > 1) echo '</div>';
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы