小挖在仿站《Qingart—小清新轻文艺wordpress淘宝客主题》这款主题的时候,遇到一个文章页码转换的问题。默认的wordpress下一篇和上一篇的函数是自动生成链接以上或下一篇文章的标题的。这种简单的函数调用方式简单易用,但确给建站的可塑性带来了很大的困难。
通过搜索小挖发现了一个不错的无插件wp分布函数样式,相当于将上下篇文章样式精简,可以直接运用在链接里面。
第一个可以定制显示wordpress显示上一页下一页,及统计页数及中间页数,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
if ( !function_exists( 'pagenavi' ) ) { function pagenavi( $p = 5 ) { // 取当前页前后各 2 页 if ( is_singular() ) return ; // 文章与插页不用 global $wp_query , $paged ; $max_page = $wp_query ->max_num_pages; if ( $max_page == 1 ) return ; // 只有一页不用 if ( emptyempty( $paged ) ) $paged = 1; echo '<span class="pages">Page: ' . $paged . ' of ' . $max_page . ' </span> ' ; // 显示页数 if ( $paged > 1 ) p_link( $paged - 1, '上一页' , '« Previous' ); /* 如果当前页大于1就显示上一页链接 */ if ( $paged > $p + 1 ) p_link( 1, '最前页' ); if ( $paged > $p + 2 ) echo '... ' ; for ( $i = $paged - $p ; $i <= $paged + $p ; $i ++ ) { // 中间页 if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers current'>{$i}</span> " : p_link( $i ); } if ( $paged < $max_page - $p - 1 ) echo '... ' ; if ( $paged < $max_page - $p ) p_link( $max_page , '最后页' ); if ( $paged < $max_page ) p_link( $paged + 1, '下一页' , 'Next »' ); /* 如果当前页不是最后一页显示下一页链接 */ } function p_link( $i , $title = '' , $linktype = '' ) { if ( $title == '' ) $title = "第 {$i} 页" ; if ( $linktype == '' ) { $linktext = $i ; } else { $linktext = $linktype ; } echo "<a class='page-numbers' href='" , esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a> " ; } } |
第二个就是今天主要分享的,只显示上一页下一页,可定制样式,实例代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
if ( !function_exists( 'pagenavi' ) ) { function pagenavi( ) { if ( is_singular() ) return ; // 文章与插页不用 global $wp_query , $paged ; $max_page = $wp_query ->max_num_pages; if ( emptyempty( $paged ) ) $paged = 1; if ( $paged > 1 ) p_linkp( $paged - 1, '上一页' ); /* 如果当前页大于1就显示上一页链接 */ if ( $paged == 1 ) p_linkp1( $paged ); /* 如果当前页等于1就显示灰色链接 */ if ( $paged < $max_page ) p_linkn( $paged + 1, '下一页' ); /* 如果当前页不是最后一页显示下一页链接 */ if ( $paged == $max_page ) p_linkp0( $paged ); /* 如果当前页等于最后一页显示灰色链接 */ } function p_linkp( $i , $title = '' , $linktype = '' ) { echo "<div class='pre-page page'><a href='" , esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a></div> " ; } function p_linkn( $i , $title = '' , $linktype = '' ) { echo "<div class='next-page page'><a href='" , esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a></div> " ; } function p_linkp0() { echo "<div class='pre-page page nav0'></a></div> " ; } function p_linkp1() { echo "<div class='pre-page page nav1'></a></div> " ; } } |