2015-10-15 54 views
0

如何輸出每個分頁步驟中包含的帖子範圍,而不僅僅是當前頁碼?如何在Wordpress分頁中顯示帖子範圍而不是頁碼?

我的意思是: 1-10 11-20 21-30 31-40 101-110 ...接着

代替: 1 2 3 4 5 6 .. 10接着

我當前的頁碼功能:

function wp_pagination() { 
    global $wp_query; 
    $total = $wp_query->max_num_pages; 
    $prev_arrow = is_rtl() ? '<span class="next">Next</i>' : '<span class="previous">Prev</span >'; 
    $next_arrow = is_rtl() ? '<span class="previous">Prev</i>' : '<span class="next">Next</span >'; 
    $big = 999999999; 

    if($total > 1) { 

     if(!$current_page = get_query_var('paged')) 

      $current_page = 1; 

     if(get_option('permalink_structure')) { 

      $format = 'page/%#%/'; 

     } else { 

      $format = '&paged=%#%'; 

     } 

     echo paginate_links(array(

      'base'   => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
      'format'  => $format, 
      'current'  => max(1, get_query_var('paged')), 
      'total'   => $total, 
      'mid_size'  => 3, 
      'type'   => 'list', 
      'prev_text'  => $prev_arrow, 
      'next_text'  => $next_arrow, 

     )); 

    } 

} 

回答

0

不幸的是,paginate_links函數不允許你改變顯示的頁碼格式。來源paginate_links功能

https://core.trac.wordpress.org/browser/tags/4.3.1/src/wp-includes/general-template.php#L2742

以下行負責構建頁碼:

$page_links[] = "<a class='page-numbers' href='" . esc_url(apply_filters('paginate_links', $link)) . "'>" . $args['before_page_number'] . number_format_i18n($n) . $args['after_page_number'] . "</a>"; 

正如你所看到的,簡單地插入作爲<a>標籤的內容沒有任何可能性的頁碼更改顯示格式 - number_format_i18n($n)

爲了達到你的目標,你應該創建自己的實現這個功能的。以原始的wp paginate_links函數爲例。

+0

感謝您的建議,我想出了一個不同的方式。 可以將pagination html輸出爲數組(paginate_links()選項中的'type'=>'array')。我用正則表達式替換了每個數組元素的鏈接文本。 – user1276919

相關問題