猿问

如何使用 Timber 在页脚中显示 3 个最近的帖子?

所以,我已经为此绞尽脑汁两天了。如何使用 Timber 和 Twig 在页脚中显示 3 个最近的帖子?我正在使用 Timber 的入门主题。我在 footer.php 文件中做了什么:


$timberContext = $GLOBALS['timberContext'];

if ( ! isset( $timberContext ) ) {

throw new \Exception( 'Timber context not set in footer.' );

}

$args = array(

'posts_per_page' => 3,

);

$timberContext['featured'] = new Timber\PostQuery($args);

$templates = array( 'page-plugin.twig');

$timberContext['content'] = ob_get_contents();

ob_end_clean();

Timber::render( $templates, $timberContext );

在我的 footer.twig 中我尝试显示它们:


<ul class = "featured-posts-list">

    {% for post in featured %}

        <li><a href="{{ post.link }}">{{ post.title }}</a></li>

    {% endfor %}

</ul>

现在的问题是它什么也没显示。如果我用 footer.twig 中的帖子替换featured,它会显示当前页面上的所有帖子。在我看来,Timber 不处理我的帖子查询,我不知道为什么会这样。我一直在寻找答案,但没有找到。另外,这是我在这里发表的第一篇文章,所以如果令人困惑,我提前表示歉意。


烙印99
浏览 93回答 1
1回答

天涯尽头无女友

所以,我刚刚找到了我自己问题的答案:)如果有人遇到类似的问题,我通过将变量添加到functions.php中的上下文来解决它:public function add_to_context( $context ) {&nbsp; &nbsp; &nbsp; &nbsp; //...previous variables...&nbsp; &nbsp; &nbsp; &nbsp; //the one I have added&nbsp; &nbsp; &nbsp; &nbsp; $context['featured'] = new Timber\PostQuery(array(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'post_type' => 'post',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'posts_per_page' => 3,&nbsp; &nbsp; &nbsp; &nbsp; ));&nbsp; &nbsp; &nbsp; &nbsp; return $context;&nbsp; &nbsp; }然后在我的 footer.twig 中我这样使用它:<ul class = "featured-posts-list">&nbsp; &nbsp; {% for post in featured %}&nbsp; &nbsp; &nbsp; &nbsp; <li><a href="{{ post.link }}">{{ post.title }}</a></li>&nbsp; &nbsp; {% endfor %}</ul>
随时随地看视频慕课网APP
我要回答