在 WordPress 中实现文章分页(无需插件)
WordPress 内置了文章分页功能,允许你将一篇长文章分割成多个页面。实现此功能无需安装任何插件,只需进行简单的代码配置即可。以下是完整的实现步骤。
第一步:在编辑器中启用分页按钮
默认情况下,经典编辑器(TinyMCE)的分页按钮可能未显示。你需要将其添加到工具栏中。
打开你当前主题的 functions.php 文件,在文件末尾添加以下代码:
function enable_more_buttons($buttons) {
$buttons[] = 'wp_page';
return $buttons;
}
add_filter("mce_buttons_3", "enable_more_buttons");
保存文件后,刷新 WordPress 后台。在经典编辑器的第三行工具栏中,你将看到“插入分页标签”按钮(图标通常为两个矩形中间有一条虚线)。
注意: 如果你使用的是古腾堡(Gutenberg)区块编辑器,分页功能已内置。在编辑文章时,只需添加“分页符”区块即可。
第二步:在主题模板中输出分页链接
仅仅在文章中插入分页符是不够的,你还需要在主题模板中调用函数来显示页面导航链接。
找到你当前主题的 single.php 文件(或用于显示单篇文章的主模板文件)。定位到输出文章内容的代码,通常是:
<?php the_content(); ?>
在这行代码的下方,添加以下代码:
<?php wp_link_pages(); ?>
保存文件。现在,当你撰写文章并使用分页按钮后,文章底部就会显示默认的分页导航,效果是简单的数字页码链接。
第三步:自定义分页导航样式与布局
默认的分页样式可能不符合你的设计需求。WordPress 的 wp_link_pages() 函数提供了丰富的参数来自定义输出。以下是几种常见的自定义方案。
方案一:带“上一页/下一页”的紧凑导航
此方案将“页面:”提示、数字页码以及“上一页/下一页”链接组合在一起显示。
<?php
wp_link_pages(array(
'before' => '<div class="wp-pagenavi"><p><span class="pages">页面:</span>',
'after' => '</p></div>',
'link_before' => '<span class="page-number">',
'link_after' => '</span>',
'next_or_number' => 'number',
'pagelink' => '%'
));
?>
<?php
wp_link_pages(array(
'before' => '<div class="single-navi">',
'after' => '</div>',
'next_or_number' => 'next',
'previouspagelink' => '« 上一页',
'nextpagelink' => '下一页 »'
));
?>
方案二:“上一页/下一页”分居两侧
此方案将“上一页”链接放在左侧,数字页码放在中间,“下一页”链接放在右侧,布局更清晰。
<div class="post-pagination">
<?php
// 输出“上一页”链接
wp_link_pages(array(
'before' => '',
'after' => '',
'next_or_number' => 'next',
'previouspagelink' => '« 上一页',
'nextpagelink' => ''
));
?>
<?php
// 输出数字页码
wp_link_pages(array(
'before' => '',
'after' => '',
'next_or_number' => 'number',
'link_before' => '<span>',
'link_after' => '</span>'
));
?>
<?php
// 输出“下一页”链接
wp_link_pages(array(
'before' => '',
'after' => '',
'next_or_number' => 'next',
'previouspagelink' => '',
'nextpagelink' => '下一页 »'
));
?>
</div>
提示: 以上代码中的 HTML 类名(如 wp-pagenavi, single-navi)可用于添加 CSS 样式,以美化导航外观。
wp_link_pages() 函数参数详解
理解函数的参数有助于你进行更灵活的自定义。以下是核心参数的说明:
before(字符串):在所有分页链接之前输出的 HTML 或文本。默认是<p>Pages:。after(字符串):在所有分页链接之后输出的 HTML 或文本。默认是</p>。link_before(字符串):在每个单个页码链接之前输出的 HTML 或文本。默认为空。link_after(字符串):在每个单个页码链接之后输出的 HTML 或文本。默认为空。next_or_number(字符串):控制链接类型。'number'(默认):显示数字页码。'next':显示“上一页”和“下一页”链接。
nextpagelink(字符串):“下一页”链接的文本。默认是“Next page”。previouspagelink(字符串):“上一页”链接的文本。默认是“Previous page”。pagelink(字符串):页码链接的格式字符串,%会被替换为页码数字。默认是%。echo(布尔值):是否直接输出结果。true或1(默认):直接输出 HTML。false或0:返回 HTML 字符串,供其他 PHP 代码使用。
通过组合这些参数,你可以创建出几乎任何样式的文章分页导航,完美融入你的网站设计。