[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция пагенации
Wahtel
Всем привет, есть функция пагинации:

function deco_pagination( $args ) {

$defaults = array(
'total' => 1,
'current' => 0,
'show_all' => false,
'prev_next' => true,
'prev_text' => __( 'Предыдущая', TEXTDOMAIN ),
'next_text' => __( 'Следующая', TEXTDOMAIN ),
'end_size' => 1,
'mid_size' => 2,
);



$args = wp_parse_args( $args, $defaults );

extract( $args, EXTR_SKIP );


$current = (int) $current;
$end_size = 0 < (int) $end_size ? (int) $end_size : 1;
$mid_size = 0 <= (int) $mid_size ? (int) $mid_size : 2;
$r = '';
$n = 0;
$dots = false;

$page_links = '';

if ( $prev_next && $current && 1 < $current ) {

$prev_num = $current - 1;
$page_links .= '<a href="' . get_pagenum_link( $n ) . '" class="previouspostslink de_item_page_num_' . $n . '" data-page-num="' . $prev_num . '">' . $prev_text . '</a>';
}


for ( $n = 1; $n <= $total; $n ++ ) {
//echo $total.'<br>';

if ( $n == $current ) {
$page_links .= "<span class='current-nav-item de_item_page_num_{$n}' data-page-num='$n'>$n</span>";
$dots = true;
} else {
if ( $show_all || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size ) ) {

$page_links .= "<a href='" . get_pagenum_link( $n ) . "' class='page-numbers de_item_page_num_{$n}' data-page-num='$n'>$n</a>";

$dots = true;
} elseif ( $dots && ! $show_all ) {
$page_links .= '<span>' . __( '…' ) . '</span>';
$dots = false;
}
}
}


if ( $prev_next && $current && ( $current < $total || - 1 == $total ) ) {
$page_links .= '<a href="' . get_pagenum_link( $n - 1 ) . '" class="nextpostslink de_item_page_num_' . $n . '" data-page-num="' . ( $current + 1 ) . '">' . $next_text . '</a>';
}

return $page_links;
}


ниже другая функция где я вызываю ее:


function deco_load_more() {
global $wp_query;

//print_r( $wp_query );
if ( $wp_query->max_num_pages == 1 ) {
return;
}
?>
<a href="" class="download-more">
<?php

$str = __( '<!--:ru-->Показать больше <!--:--><!--:ua-->Показати більше<!--:--><!--:en-->Show more<!--:-->' );
echo $str;
?>
</a>

<
div class="pagenation">
<?php
$page = $wp_query->query_vars['paged'];
if ( empty( $page ) ) {
$page = 1;
}

$max_pages = $wp_query->max_num_pages;


echo deco_pagination( array(
'total' => $max_pages,
'current' => $page,
'prev_text' => '',
'next_text' => '',
) );




?>
</div>

<?php
}

Функция работает нормально, она выводит кол-во страниц, и если я нажимаю на первую страницу то она меня переведет на первую, если на вторую то на вторую, и т.д., но если я буду на первой странице и нажму на стрелочку '>' для переход на следующею страницу, то она меня перекидывает на последнюю, а если с последней нажму на предыдущую то перекинет на первую, я уже перерыл всю функцию, пробовал переписать сделать по другому, но ничего не получается, мне дали эту функцию на других сайтах она работает нормально, можете глянуть подсказать почему так?
Спасибо, всех с праздниками.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.