首先不得不说子凡不是特别喜欢一篇文章被分页,甚至是被隐藏点击阅读,这样大大的降低了快速阅读的体验,那么对于 Fanly MIP 主题的用户需求子凡还是要相应的,而同样 WordPress 也非常好的支持了文章内容的分页功能,但是其提供的 wp_link_pages 函数却有点不完美。

WordPress wp_link_pages

WordPress wp_link_pages 这个函数提供了分页模式,要么是上下翻页,要么就是数字分页,而对于像子凡这样事儿多的人,有想要上下翻页,有想要数字分页该怎么办呢?

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//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;
}

调用方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
//wp_link_pages 调用方式
wp_link_pages(
	array(
		'before' => '<div class="fenye">',
		'after' => '</div>',
		'next_or_number' => 'next_and_number', //next_and_number,数字分页+上下翻页 | next,上下翻页 | number,数字分页
		'link_before' => '<span>',
		'link_after' => '</span>',
		'previouspagelink' => '上一页',
		'nextpagelink' => "下一页"
	)
);

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

1
2
3
4
//简单的分页样式
.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 就可以啦!

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-wp_link_pages.html

发表评论