的文本<!--nextpage-->
是硬编码的,所以您不能专门修改它。wp_link_pages
仅适用于一致的文本,因此我认为您也不能真正使其完全满足您的需要,但它确实接受一个参数echo
您可以设置为false
返回值。利用这一点,有很多方法可以完成你想要做的事情。三个简单的选项是使用短代码、另一个HTML注释,或者可以使用post meta。就我个人而言,我可能会选择另一条HTML注释,就在每个“页面”的顶部。帖子可能会这样:
<!--Section:Introduction-->
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<!--nextpage-->
<!--Section:Method-->
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
<!--nextpage-->
<!--Section:Discussion-->
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
<!--nextpage-->
<!--Section:Reference-->
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
解决方案将此添加到函数中。php文件并根据您的使用自定义它,然后您可以调用
my_wp_link_pages()
而不是
wp_link_pages()
要获取自定义链接,请执行以下操作:
/**
* Replace page numbers with section titles in HTML comments
*
* @return void
* @author Matthew Boynes
*/
function my_wp_link_pages() {
global $post, $numpages, $multipage;
if ($multipage) {
$links = wp_link_pages(array(
\'before\' => \'<div class="page-link">\' . __( \'Pages:\', \'toolbox\' ),
\'after\' => \'</div>\',
\'link_before\' => \'<b>\',
\'link_after\' => \'</b>\',
\'echo\' => 0
));
if (preg_match_all(\'/<!--Section:(.*?)-->/i\', $post->post_content, $custom_links)) {
for ( $i = 1; $i < ($numpages+1); $i = $i + 1 ) {
$links = preg_replace("#<b>$i</b>#",$custom_links[1][$i-1],$links);
}
}
echo $links;
}
}
注意:这使用正则表达式将链接中的数字替换为节标题。你可能想知道
<b>
标签,对吗?这些只是为了确保我们只识别和替换我们想要的数字,否则regex就没有什么可“锁定”的,很可能会出现不可预测的行为(例如slug
/juniors-1st-birthday/
可能会变成
/juniors-Introductionst-birthday/
).