WordPress不用插件翻页导航代码

网上已经有很多翻页导航代码了,这里我要发布的一个翻页导航代码是我自己根据WordPress官方主题中的翻页导航代码来写的,自我感觉还不错,所以拿出来分享。

function bzg_paging_nav() {
	if ( $GLOBALS['wp_query']->max_num_pages < 2 )
		return;

	$paged = get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1;
	$pagenum_link = html_entity_decode( get_pagenum_link() );
	$query_args = array();
	$url_parts = explode( '?', $pagenum_link );

	if ( isset( $url_parts[1] ) )
		wp_parse_str( $url_parts[1], $query_args );

	$pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
	$pagenum_link = trailingslashit( $pagenum_link ) . '%_%';

	$format  = $GLOBALS['wp_rewrite']->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
	$format .= $GLOBALS['wp_rewrite']->using_permalinks() ? user_trailingslashit( 'page/%#%', 'paged' ) : '?paged=%#%';

	$links = paginate_links( array(
		'base'     => $pagenum_link,
		'format'   => $format,
		'total'    => $GLOBALS['wp_query']->max_num_pages,
		'current'  => $paged,
		'mid_size' => 1,
		'add_args' => array_map( 'urlencode', $query_args ),
		'prev_text' => '上一页',
		'next_text' => '下一页',
	) );

	if ( ! $links )
		return;
	
	echo '<nav class="paging-nav" role="navigation">
			<h1>分页导航</h1>
			<div class="loop-pagination">'
			. $links .
		'</div></nav>';
}

调用方法:

<?php bzg_paging_nav(); ?>

开启懒人模式,提供相应的CSS:

.paging-nav {
	padding: 20px;
	background-color: #ffffff;
}
.paging-nav a, .paging-nav span {
	color: inherit;
	display: inline-block;
	padding: 2px .8em;
	background-color: #dcdcdc;
}
.paging-nav a:hover {
	background-color: #cccccc;
}
.paging-nav span.current {
	color: #ffffff;
	background-color: #006699;
}
.paging-nav span.dots {
	background-color: transparent;
}
阿里云