首页 > 解决方案 > 在灵活的内容布局中获取子字段

问题描述

似乎我无法从第 29 行的“overview_title”字段中获取值。这是“overview_layout”的子字段。JSON:https ://pastebin.com/BLBb6cjx 。

我可以得到“overview_layout”字段。但它的子字段不会返回任何东西。任何人?

我要做的是获取这 3 个自定义字段的值。但我什么也得不到。

这就是我在 Timber 中尝试的:

$post = new Timber\Post();
$context['post'] = $post;

$context['layout'] = get_field('cancer_type_layout');

$context['overview'] = array (
  'title' => get_field('overview_title'),
  'text' => get_field('overview_text'),
  'image' => get_field('overview_picture')
);

Timber::render('templates/pages/template-cancer.twig', $context);```

标签: wordpresstwigadvanced-custom-fieldstimber

解决方案


当您在 Timber 中使用灵活内容字段时,您不能通过更多调用来访问子字段get_field()。当您获取具有灵活内容字段名称的数据时,子字段的所有数据都已经存在。

$post = new Timber\Post();
$context['post'] = $post;

// Everything you need will be in block.
$context['block'] = $post->meta( 'cancer_type_layout' );

Timber::render( 'templates/pages/template-cancer.twig', $context );

在 Twig 中,您可以直接从block变量访问数据:

{% if 'overview_layout' === block.acf_fc_layout %}
    {{ block.overview_title }}
    {{ block.overview_text }}
    {{ block.overview_picture }}
{% endif %}

推荐阅读