2015-12-11 3 views
0
function paginate_posts() { 
    global $wp_query, $wp_rewrite; 
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1; 
    $current = str_pad($current, 2, '0', STR_PAD_LEFT); 
    $total = str_pad($wp_query->max_num_pages, 2, '0', STR_PAD_LEFT); 
    $pagination_args = array(
     'base' => @add_query_arg('page', '%#%'), 
     'format' => '', 
     'total' => $wp_query->max_num_pages, 
     'current' => $current, 
     'show_all' => false, 
     'end_size' => 0, 
     'mid_size' => 0, 
     'next_text' => _("»"), 
     'prev_text' => _("«"), 
    ); 
    if ($wp_rewrite->using_permalinks()) 
     $pagination_args['base'] = user_trailingslashit(trailingslashit(remove_query_arg('s', get_pagenum_link(1))) . 'page/%#%/', 'paged'); 

    if (!empty($wp_query->query_vars['s'])) 
     $pagination_args['add_args'] = array('s' => get_query_var('s')); 
    $prev = get_previous_posts_link(''); 
    $next = get_next_posts_link(''); 
    $links = "<div class='pagination_box'><span class='prev page-num'>$prev</span> <span>Page $current/$total</span> <span class='next page-num'>$next</span></div>"; 
    echo $links; 
} 

Разбивка на страницы с помощью выше кода работает в страницах категории таксономии. Но когда я вызываю эту функцию на странице <?php paginate_posts(); ?>, она не работает. Но не могу понять, в чем проблема?post pagination на странице не работает wordpress

+0

попробуйте эту ссылку, Мой ответ [Нажмите здесь] (http://stackoverflow.com/questions/33996690/how-to-create-pagination-in-page -code-in-wordpress/34013174 # 34013174) –

+0

см. Я скопировал код выше и разместил его непосредственно на странице. Добавил новый запрос с моими параметрами ($ wp_query = new WP_Query(); $ wp_query> query ('post_type = product & paged ='. Get_query_var ('paged'). '& Odrerby = ID & posts_per_page = 15 & order = DESC'););) Кажется, теперь это работает. Просто нумерация неправильная. Например, если у меня есть 2 страницы, и я нажал, чтобы перейти на вторую страницу, это показывает 01/02 вместо 02/02. У вас есть мысли? @bhaveshvala – aidadev

+0

Теперь он работает, я просто пропустил $ args внутри функции запроса, например $ wp_query = new WP_Query ($ args); @bhaveshvala – aidadev

ответ

0

Для того, чтобы мой код страницы работал внутри страницы, я помещал код внутри страницы, где я хочу отображать разбиение на страницы, а затем добавлял новый запрос с моими аргументами, и теперь он работает. И мой окончательный код выглядит следующим образом:

<?php 
    global $wp_query, $wp_rewrite; 
    $wp_query = new WP_Query($args); 
    $wp_query->query('post_type=product&paged='.get_query_var('paged').'&odrerby=ID&posts_per_page=15&order=DESC'); 
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1; 
    $current = str_pad($current, 2, '0', STR_PAD_LEFT); 
    $total = str_pad($wp_query->max_num_pages, 2, '0', STR_PAD_LEFT); 
    $pagination_args = array(
     'base' => @add_query_arg('page', '%#%'), 
     'format' => '', 
     'total' => $wp_query->max_num_pages, 
     'current' => $current, 
     'show_all' => false, 
     'end_size' => 0, 
     'mid_size' => 0, 
     'next_text' => _("&raquo;"), 
     'prev_text' => _("&laquo;"), 
    ); 
    if ($wp_rewrite->using_permalinks()) 
     $pagination_args['base'] = user_trailingslashit(trailingslashit(remove_query_arg('s', get_pagenum_link(1))) . 'page/%#%/', 'paged'); 

    if (!empty($wp_query->query_vars['s'])) 
     $pagination_args['add_args'] = array('s' => get_query_var('s')); 
    $prev = get_previous_posts_link(''); 
    $next = get_next_posts_link(''); 
    $links = "<span class='pagexofy'><span class='prev page-numbers'>$prev</span> <span>PAGE $current/$total</span> <span class='next page-numbers'>$next</span></span>"; 
    echo $links; 
?> 
Смежные вопросы