一篇文章如果被分页,将会大大的降低了快速阅读的体验,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 就可以啦!