我正在写博客,我的大多数帖子都很长,需要分页。请参见以下内容之一my posts. 这篇文章有很多页。
唯一的问题是,我找不到一种方法来显示一个目录,该目录将在多个页面上一致地列出所有标题。
我用标签将单个帖子划分为不同的页面:<!--nextpage-->
.
我目前正在使用“目录+(TOC+)插件,它在single pages, 但在使用对页面分页时失败<!--nextpage-->
.
实际上,我希望在编写一个插件时能得到帮助。
EDITED - PROPOSED SOLUTION/HACK
为了解决这个问题,我制定了以下步骤来解决这个问题:
检查页面是否分页-wordpress wordpress有一个全局变量,$multipage
这将指示一个帖子是否分页。
如果文章已分页,则内容代码表(要编写或修改)将检查每页的标题。
每页找到的标题将存储在一个数组中,并用于显示目录
此外,对于分页的单篇文章,代码将设置为在每页上一致显示相同的TOC,而不是每页显示不同的TOC
THE CODE
<?php
/**
* Determines whether or not the current post is a paginated post.
* @return boolean True if the post is paginated; false, otherwise.
*/
function acme_is_paginated_post() {
global $multipage;
return 0 !== $multipage;
}
?>
如果对post进行分页,将在中进行以下检查
single.php
文件:
<?php if ( acme_is_paginated_post() ) { ?>
<div class="post-pagination-toc">
<!-- paginated post TOC display that checks headers across different poages and the displays all headers in as TOC\'s content uniformly across all paginated pages -->
</div>
<?php else { ?>
<div class="normal-singlepage-toc">
<!-- normal TOC display for single non-paginated post -->
</div>
<?php } ?>
事实上,我将上述代码简化为一个简单的函数
TOC_new()
<?php
function TOC_new () {
global $numpages;
if ( is_singular() && $numpages > 1 ) {
// This is a single post
// and has more than one page;
// Implement a General TOC to be displayed consistently multiple Pages and return values
} else {
// This is a single post
// and has only one page;
// implement TOC code for single pages.
}
?>