我应该在单个wordpress模板中使用$post = Timber::query_post()还是$post = new TimberPost()()

我已经在Timber官方存储库中阅读到有关使用的一般性问题应在此处发布。
【我应该在单个wordpress模板中使用$post = Timber::query_post()还是$post = new TimberPost()()】我是Timber / Twig的新手, 我有一个非常” 基本” 的问题。
在入门主题中, 我已经看到在single.php中, 将传递给$ context的$ post变量设置为

$post = Timber::query_post()

而page.php是用
$post = new TimberPost();

因此, 当我需要设置一个single-cpt.php时, 我应该使用哪种方法? Timber :: query_post()还是新的TimberPost()?
我已经尝试了它们两个, 并且两个都正常工作, 但是什么是正确的方法呢?
谢谢!
PS:我已经看到在index.php中, 使用新的Timber \ PostQuery()设置了$ context [‘ post’ ]。这基本上可以重现模板层次结构的标准循环吗?
#1我了解使用哪种方法可能会造成一些困惑。目前, 有很多方法可以做到, 而你尝试过的所有方法都应该可以使用。
在即将发布的Timber 2中, 我们试图统一这一点, 我们将弃用仍然存在的一些方法。因此, 从现在开始, 这就是你应该如何做。
2020年3月更新–我们反复讨论了适用于2.x的新API的外观, 并提出了几乎固定的解决方案。有些事情会在那里发生变化, 如果你想了解更多信息, 可以查看此请求。
在此之前, 这是我们推荐的处理方式:
获得一个帖子
$post = new Timber\Post();

$post = Timber::get_post();

获取帖子集
$post = new Timber\PostQuery();

$post = Timber::get_posts();

如果要对你的帖子使用分页, 则仍然必须使用Timber \ PostQuery:
$post = new Timber\PostQuery();

(在Timber 2.x中, Timber :: get_posts()将可用于分页, 但在1.x中尚不可用。)
标准循环
我已经看到在index.php中, 使用新的Timber \ PostQuery()来设置$ context [‘ post’ ]。这基本上可以重现模板层次结构的标准循环吗?
是!
实际上, 如果你不向PostQuery()传递任何参数, 则甚至不必设置$ context [‘ posts’ ], 因为Timber已经在Timber :: get_context()中为你完成了此操作。
index.php
< ?php use Timber\Timber; $context = Timber::get_context(); Timber::render( 'index.twig', $context );

使用命名空间的类名当前, 你可能仍会看到TimberPost()而不是Timber \ Post()。对于版本1, 所有Timber类均已命名空间, 因此从现在开始推荐的方法是在PHP中使用命名空间的类名, 例如Timber \ Term而不是TimberTerm。
但!在Twig中, 你仍将使用非命名空间版本:
{% set post = Post(post_id) %}

or
{% set post = TimberPost(post_id) %}

我希望这可以解决问题。

    推荐阅读