木材:单个帖子分页不起作用wp_link_pages

问题描述

我对 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) }},当启用调试时,它将打印变量的输出。