首页 > 解决方案 > 使用 Twig / Timber 在作者页面上获取帖子存档

问题描述

这是我目前的设置:

  1. 我有一个 Wordpress 网站。
  2. 我使用 Twig 作为模板引擎。
  3. 我使用 Advance Custom Field 插件来创建自定义字段组。
  4. 我已经注册了一个名为 People 的自定义帖子类型。
  5. 自定义帖子类型 People 具有分配给它的 ACF 组。
  6. 我有在博客部分呈现的默认 Wordpress 帖子。
  7. 每篇博文都有一个分配给它的 ACF 组。
  8. 分配给帖子类型 Posts 的 ACF 组包含将该组与 People 组链接的关系字段,因此博客帖子可以显示一个或多个“作者”(来自自定义帖子类型 People 的条目)。

我可以单独访问每个人(来自自定义帖子类型 People 的条目)。我想做的是从那个角度来看,能够访问所有博客文章条目并按关系字段过滤以仅显示该人撰写的博客文章。

关于如何用 Twig 做到这一点的任何想法?一旦我进入人物“上下文”,我也找不到访问博客文章“上下文”的方法。

标签: phpwordpresstwigadvanced-custom-fieldstimber

解决方案


通常,您需要为此创建一个自定义查询,并将其添加到 single-people.php 中:

    // an author's blog articles
    $args = array(
      'post_type' => 'post',
      'posts_per_page' => '9',
      'orderby' => 'date',
      'order'=> 'DESC',
      'post_status' => 'publish',
      'meta_query' => array(
        array(
          'key' => 'people', // name of custom field
          'value' => '"' . get_the_ID() . '"',
          'compare' => 'LIKE'
        )
      )
    );
    $context['blogs'] = Timber::get_posts( $args );

推荐阅读