为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
烙印99 2023-10-15 14:39:46
所以,我已经为此绞尽脑汁两天了。如何使用 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 不处理我的帖子查询,我不知道为什么会这样。我一直在寻找答案,但没有找到。另外,这是我在这里发表的第一篇文章,所以如果令人困惑,我提前表示歉意。
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

所以,我刚刚找到了我自己问题的答案:)如果有人遇到类似的问题,我通过将变量添加到functions.php中的上下文来解决它:


public function add_to_context( $context ) {

        //...previous variables...

        //the one I have added

        $context['featured'] = new Timber\PostQuery(array(

            'post_type' => 'post',

            'posts_per_page' => 3,

        ));

        return $context;

    }

然后在我的 footer.twig 中我这样使用它:


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

    {% for post in featured %}

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

    {% endfor %}

</ul>


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信