Пагинация для Wordpress

304
15 сентября 2017, 22:04

Я сделал пагинацию, которая работает для главной страницы (index.php), где я вывожу посты всех рубрик (cat). Но у меня есть еще страницы где по отдельности выводятся посты каждой с рубрик, вот здесь и пагинация работает неправильно, В адресной строке как положено выводиться что то типа - site.url/category_name/page/1. Но посты на странице почему-то не обновляются.

Вот код функции для вывода пагинации (в functions.php):

/* Pagination */
/**
 * WordPress Bootstrap Pagination
 */
function wp_pagination( $args = array() ) {
    $defaults = array(
        'range'           => 4,
        'custom_query'    => FALSE,
        'previous_string' => __( 'Попередня', 'current' ),
        'next_string'     => __( 'Далі', 'next' ),
        'before_output'   => '<div class="pagination-wrapper"><ul class="page-numbers">',
        'after_output'    => '</ul></div>'
    );
    $args = wp_parse_args(
        $args,
        apply_filters( 'wp_bootstrap_pagination_defaults', $defaults )
    );
    $args['range'] = (int) $args['range'] - 1;
    if ( !$args['custom_query'] )
        $args['custom_query'] = @$GLOBALS['wp_query'];
    $count = (int) $args['custom_query']->max_num_pages;
    $page  = intval( get_query_var( 'paged' ) );
    $ceil  = ceil( $args['range'] / 2 );
    if ( $count <= 1 )
        return FALSE;
    if ( !$page )
        $page = 1;
    if ( $count > $args['range'] ) {
        if ( $page <= $args['range'] ) {
            $min = 1;
            $max = $args['range'] + 1;
        } elseif ( $page >= ($count - $ceil) ) {
            $min = $count - $args['range'];
            $max = $count;
        } elseif ( $page >= $args['range'] && $page < ($count - $ceil) ) {
            $min = $page - $ceil;
            $max = $page + $ceil;
        }
    } else {
        $min = 1;
        $max = $count;
    }
    $echo = '';
    $previous = intval($page) - 1;
    $previous = esc_attr( get_pagenum_link($previous) );
    $firstpage = esc_attr( get_pagenum_link(1) ); // відповідає за ссилку(кнопку) - перша(first)
    if ( $firstpage && (1 != $page) )
        $echo .= '<li><a href="' . $firstpage . '" class="page-numbers">' . __( 'Перша', 'text-domain' ) . '</a></li>';
    /*if ( $previous && (1 != $page) ) // відповідає за ссилку(кнопку) - попередня(previous)
        $echo .= '<li><a href="' . $previous . '" class="page-numbers" title="' . __( 'previous', 'text-domain') . '">' . $args['previous_string'] . '</a></li>';*/
    if ( !empty($min) && !empty($max) ) {
        for( $i = $min; $i <= $max; $i++ ) {
            if ($page == $i) {
                $echo .= '<li><span class="page-numbers current">' . str_pad( (int)$i, 2, '0', STR_PAD_LEFT ) . '</span></li>';
            } else {
                $echo .= sprintf( '<li><a href="%s" class="page-numbers">%002d</a></li>', esc_attr( get_pagenum_link($i) ), $i );
            }
        }
    }
    $next = intval($page) + 1;
    $next = esc_attr( get_pagenum_link($next) );
    if ($next && ($count != $page) )
        $echo .= '<li><a href="' . $next . '" title="' . __( 'next', 'text-domain') . '" class="page-numbers">' . $args['next_string'] . '</a></li>';

    /*$lastpage = esc_attr( get_pagenum_link($count) ); // відповідає за вивід ссилки - остання(last)
    if ( $lastpage ) {
        $echo .= '<li class="next"><a href="' . $lastpage . '" class="page-numbers">' . __( 'Last', 'text-domain' ) . '</a></li>';
    }*/

    if ( isset($echo) )
        echo $args['before_output'] . $echo . $args['after_output'];
}
READ ALSO
DateTime в качестве массива

DateTime в качестве массива

Возможно ли вывести строку date?

259
Session php, данные забываются

Session php, данные забываются

Данные в сессии забываютсяПри передаче данных со страницы 1 на страницу 2 получаем array(2) { ["answer1"]=> string(1) "4" ["answer2"]=> NULL }, при передаче данных...

254
Проблема с запросами в БД из админки

Проблема с запросами в БД из админки

Всем здравствуйте, у меня в админке есть в меню блог, в котором в статьях есть вкладка изображения, которые выводятся для каждой статьиПроблема...

138