在 WordPress 中,把长内容拆成多个独立页面并为它们加上分页导航,是提升用户体验的常见做法。这种做法不依赖插件,主要通过页面模板和循环查询完成。

一、准备多个页面
先在后台新建若干个页面,例如“教程一”“教程二”“教程三”,记录它们的 ID 或别名。我们将以页面 ID 为例,在数组中按顺序排好。
二、在模板中获取当前页码
通过 URL 参数 paged 来判断用户当前在第几页,默认是第一页。利用 WP_Query 可查询对应页面的内容。
<?php
// 页面 ID 顺序排列
$page_ids = array(12, 15, 18);
$total = count($page_ids);
// 获取当前页码,默认 1
$paged = isset($_GET['paged']) ? intval($_GET['paged']) : 1;
if ($paged < 1) { $paged = 1; }
if ($paged > $total) { $paged = $total; }
// 查询当前页面内容
$args = array(
'post_type' => 'page',
'post__in' => array($page_ids[$paged - 1]),
'posts_per_page' => 1
);
$query = new WP_Query($args);
?>
三、输出页面内容与导航
循环输出当前页面正文,并在下方生成上一页、下一页链接。使用 get_permalink 拿到页面自身链接,再拼上 paged 参数。
<?php if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?>
<h3><?php the_title(); ?></h3>
<div><?php the_content(); ?></div>
<?php endwhile; endif; wp_reset_postdata(); ?>
<nav class="page-pagination">
<?php if ($paged > 1): ?>
<a href="?paged=<?php echo $paged - 1; ?>">上一页</a>
<?php endif; ?>
<span>第 <?php echo $paged; ?> 页 / 共 <?php echo $total; ?> 页</span>
<?php if ($paged < $total): ?>
<a href="?paged=<?php echo $paged + 1; ?>">下一页</a>
<?php endif; ?>
</nav>
四、样式补充建议
可为 nav 添加简单 CSS,让链接排成一行并留出间距:
.page-pagination {
margin-top: 24px;
}
.page-pagination a {
margin: 0 8px;
padding: 6px 12px;
border: 1px solid #ccc;
text-decoration: none;
}
.page-pagination span {
margin: 0 8px;
}
五、注意事项
- 页面 ID 调整时,需同步修改模板中的 $page_ids 数组。
- 若使用伪静态链接,可将 ?paged=2 形式改为 /paged/2/ 并重写规则。
- 不要在正文里误写 <input> 这类标签名称,如需说明请转义展示。
通过上述方式,你就能在 WordPress 的独立页面之间实现清晰的分页导航,方便读者按顺序浏览内容。