【问题标题】:Timber: Single post pagination does not work (wp_link_pages)木材:单个帖子分页不起作用(wp_link_pages)
【发布时间】:2021-04-26 22:09:18
【问题描述】:

我是 Timber 的新手,我正在尝试让单个帖子项目的分页工作。由于档案分页有很多主题,我想强调这是关于单个帖子分页的,它处理使用<!--nextpage--> 标签创建的多页单个帖子。在基本的 WordPress/PHP 使用中,它在循环内使用 wp_link_pages() 处理。

据我了解,通过搜索 SO 和其他网站,只需使用 post.pagination 数组就应该会发生魔法。但它在我的 twig 文件中是空的(根据 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 一起使用?

【问题讨论】:

    标签: php wordpress pagination timber


    【解决方案1】:

    要使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 来获取页面内容

    【讨论】:

    • 我正在使用从朋友那里得到的样板模板构建我的主题,它告诉我它可以在没有你的代码的情况下为他工作....必须调查我在修改样板时是否搞砸了一些东西,但目前您的解决方案 100% 有效。十分感谢! :)
    【解决方案2】:

    您没有正确地将帖子添加到上下文中:

    $context = Timber::get_context();
    
    $post            = new Timber\Post();
    $context['post'] = $post;
    

    另一个工具是{{ dump( post.pagination) }},当启用调试时,它将打印变量的输出。

    【讨论】:

      猜你喜欢
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多