0

WordPress 文章分页功能(wp_link_pages 文章数字分页与上下翻页 )

一篇文章如果被分页,将会大大的降低了快速阅读的体验,WordPress 也是支持文章内容的分页功能,但是其提供的 wp_link_pages 函数却有点不友好。

WordPress wp_link_pages 这个函数提供了分页模式,要么是上下翻页,要么就是数字分页,如果想要既有上下翻页,又有数字分页该怎么办呢?

将以下代码放在当前主题的 functions.php 文件中:

//WordPress 文章分页改造
add_filter('wp_link_pages_args', 'fanly_wp_link_pages_args_next_and_number');
function fanly_wp_link_pages_args_next_and_number($args){
	global $page, $numpages, $more, $pagenow;
	if (!$args['next_or_number'] == 'next_and_number') return $args; //支持数字于上下翻页 直接返回
	$args['next_or_number'] = 'number'; //保留数字分页模式
	if (!$more) return $args;
	if($page-1) //上一页
		$args['before'] .= _wp_link_page($page-1) . $args['link_before']. $args['previouspagelink'] . $args['link_after'] . '</a>';
	if ($page<$numpages) //下一页
		$args['after'] = _wp_link_page($page+1) . $args['link_before'] . '' . $args['nextpagelink'] . $args['link_after'] . '</a>' . $args['after'];
	return $args;
}

调用方式如下:

//wp_link_pages 调用方式
wp_link_pages(
	array(
		'before' => '<div class="fenye">',
		'after' => '</div>',
		'next_or_number' => 'next_and_number', 
		'link_before' => '<span>',
		'link_after' => '</span>',
		'previouspagelink' => '上一页',
		'nextpagelink' => "下一页"
	)
);

为了美观,大家还可以简单的写个 css 样式,下面是子凡的一个非常简单的样式:

.fenye{text-align:center;padding:16px 0;line-height:40px}
.fenye a{background-color:#f5f6f9;color:#a4a4a4;padding:3px 8px;margin:0 6px}
.fenye a:hover{background-color:#363d4d;color:#f5f6f9}

如果你发现你的 WordPress 主题文章或者页面内容不支持分页,那么可以通过这样的一个方式方法直接调用啦,当然如果你不需要同时拥有数字分页和上下翻页,那么直接使用 wp_link_pages 函数,'next_or_number'字段填写 next 或 number 就可以啦!

欢迎评论