WordPress 中的 Post 对象 Timber/Twig 问题

Cam*_*ron 2 wordpress twig timber

我有一个 ACF 字段,它是一个中继器,中继器内部是一个 Post 对象。

控制器

/* Template Name: Strategic Partners */

use Timber\Timber;
use Timber\PostQuery;
use Flynt\Utils\Options;

use const Flynt\Archives\POST_TYPES;

$context = Timber::get_context();

$context['slider'] = get_field('slider');
$context['featured'] = get_field('featured');

if (isset($_GET['contentOnly'])) {
    $context['contentOnly'] = true;
}

Timber::render('templates/StrategicPartners/index.twig', $context);
Run Code Online (Sandbox Code Playgroud)

这是视图中的片段

{% for partner in Post(featured) %}
  {{ partner.link }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我正在var_dump获取上下文,它正在获取木材帖子...但{{ partner.title }}没有获取帖子标题,它是空白的。

{{ partner.link }}直接链接出来。

输出

http://***/strategic-partners/
http://***/strategic-partners/
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我{{ Post() }}}在一个单独的中继器中使用,在其foreach自身内部并且在另一个页面上工作,但它在这里也不起作用,所以我尝试了包含在其中的 Post() ,foreach但它仍然不起作用。

Cam*_*ron 8

没有人为我回答这个问题。我自己回答了。

正式的 Timber 文档中没有太多关于此的文档,因此我希望这对某人有所帮助。

不要用 foreach 调用 Post

对中继器 (ACF) 内的 Post 对象执行此操作

{% for item in seq %}
 {{ Post(item.post_object_name).field }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

seq是你的 ACF 场

post_object_name是字段内的 Post 对象。

field是 Post 对象类型中的字段。

希望这对某人有帮助。

有关更多上下文:

控制器

<?php

/* Template Name: Strategic Partners */

use Timber\Timber;
use Timber\PostQuery;
use Flynt\Utils\Options;

use const Flynt\Archives\POST_TYPES;

$context = Timber::get_context();

$context['slider'] = get_field('slider');
$context['featured_sps'] = get_field('featured_strategic_partners');
$context['rebate'] = get_field('rebate_information');

if (isset($_GET['contentOnly'])) {
    $context['contentOnly'] = true;
}

Timber::render('templates/StrategicPartners/index.twig', $context);
Run Code Online (Sandbox Code Playgroud)

树枝视图

{% for partner in featured_sps %}
  {{ Post(partner.featured).title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

图片比较复杂

{% for partner in featured_sps %}
  <div class="slide">
    <a href="{{ Post(partner.featured).link }}">
      <img src="{{ Image(Post(partner.featured).logo).src }}" alt="{{ Post(partner.featured.title) }} Logo">
    </a>
  </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)