问题描述
我对 Timber 相当陌生,我正在尝试使单个帖子项目的分页正常工作。由于档案分页有很多主题,我想强调这是关于单个帖子的分页,它处理使用 <!--nextpage-->
标签创建的多页单个帖子。在基本的 wordpress/PHP 用法中,它在循环内使用 wp_link_pages() 处理。
据我所知,通过搜索 SO 和其他网站,只需使用 post.pagination
数组就可以实现奇迹。但它在我的树枝文件中是空的(根据 Timber 文档,Timber\Post 对象中根本不存在)。
我的singular.PHP 标头如下所示:
$context = Timber::get_context();
$post_object = new Timber\Post();
这是我的树枝文件:
{% if post.pagination %}
<nav>Pages:
{% for page in post.pagination.pages %}
{% if page.current %}
<span class="current">{{ page.title }}</span>{{ loop.last ? '' : ',' }}
{% else %}
<a href="{{ page.link }}">{{ page.title }}</a>{{ loop.last ? '' : ',' }}
{% endif %}
{% endfor %}
</nav>
{% endif %}
我做错了什么,我错过了什么,如何让单个帖子分页与 Timber 一起使用?
解决方法
要使 wp_link_pages()
按预期工作,请将这些行添加到您的 singular.php
global $post,$page,$pages,$multipage;
setup_postdata( $post );
// setting up your context
$context = Timber::context();
$context['post'] = new Timber\Post();
if ( $multipage ) {
$context['post']->post_content = $pages[$page - 1];
}
然后在您的 twig 文件而不是 post.content
中,您应该编写 post.paged_content
来获取页面内容
您没有正确地将帖子添加到上下文中:
$context = Timber::get_context();
$post = new Timber\Post();
$context['post'] = $post;
另一个工具是 {{ dump( post.pagination) }}
,当启用调试时,它将打印变量的输出。