2015-12-11 210 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(); ?>中调用此函数时,它不起作用。但不明白是什么问题?页面分页不工作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; 
?>