- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试使用 Timber (Twig) 从另一个页面访问 ACF 数据以显示在另一个页面上。
ACF 在“关于”页面中的名称是 the_unstrung_hero
(id = 7)。
page-home.php:
<?php
$context = Timber::get_context();
$post = new TimberPost();
$about_page_id = 7;
$about = new TimberPost($about_page_id);
$about->acf = get_field_objects($about->ID);
$context['post'] = $post;
Timber::render( array( 'page-' . $post->post_name . '.twig', 'page.twig' ), $context );
在 page-home.twig 中:
<p>{{ acf.the_unstrung_hero|print_r }}</p>
这只是许多组合的最后一次尝试。坦率地说,我只是没有得到什么(PHP 不是我的强项)...非常感谢您的帮助。
最佳答案
在上面的示例中,我看到您从“关于”页面获取字段数据,但并未将其添加到上下文中。您的模板不会显示该数据,因为您没有将其交给模板。
首先设置上下文:
$context = Timber::get_context();
然后得到当前应该显示的post数据:
$post = new TimberPost();
现在你确实加载了 $post
,但它还不在你的上下文中。您必须将要在页面上显示的数据放入 $context
数组中。然后通过 Timber::render( 'template.twig', $context )
渲染它。您的 Twig 模板将仅包含存在于 $context
中的数据(为了完整起见:您还可以使用 Twig 模板中的函数来获取数据,但这是另一个主题)。
要同时添加您从“关于”页面加载的数据,您必须这样做:
$about_page_id = 7;
$about = new TimberPost( $about_page_id );
$context['about'] = $about;
看到行 $about->acf = get_field_objects($about->ID)
不存在了吗?您不需要它,因为 Timber 会自动将您的 ACF 字段加载到发布数据中。现在可以通过 Twig 模板中的 {{ about.the_unstrung_hero }}
访问您的字段。
回到你想要实现的目标:
赞Deepak jha mentionend 在你的问题的评论中,我还会使用 get_field()
函数的第二个参数通过帖子 ID 从帖子中获取字段数据。
如果您只想显示一个 ACF 字段的值,您实际上不需要加载关于页面的整个帖子。
page-home.php
$context = Timber::get_context();
$post = new TimberPost();
$context['post'] = $post;
// Add ACF field data to context
$about_page_id = 7;
$context['the_unstrung_hero'] = get_field( 'the_unstrung_hero', $about_page_id );
Timber::render( array( 'page-' . $post->post_name . '.twig', 'page.twig' ), $context );
然后在 page-home.twig 中,您可以在帖子中访问字段数据。
<p>{{ the_unstrung_hero }}</p>
关于php - 木材:从另一个页面访问高级自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704448/
我有一个带有自定义分类法(“vehicles_category”)的 CPT(“vehicles”) 我有 4 个类别(建筑、道路、废物、其他),每个类别都分配了很多帖子。 我试图列出每个类别,并在下
我正在尝试使用 Timber (Twig) 从另一个页面访问 ACF 数据以显示在另一个页面上。 ACF 在“关于”页面中的名称是 the_unstrung_hero (id = 7)。 page-h
这段代码(WordPress 主题)使用 Timber 过滤器的“调整大小”不会生成新尺寸的图像,而是始终返回源图像链接。 将 WP_DEBUG 设置为 true 时不会返回任何错误,也不会记录任何
我刚刚设置了 Rails 应用 在我的 Ubuntu 18 机器,我想将它连接到 Forest Admin .但是,Forest Admin 要求我设置 Node 申请首先使用 npm。 Node 应
Timber (V 4.5.0) lint 检查只能通过 Gradle 进行(但不能通过 lint 命令进行,也不能在 Android Studio 2.3 Beta2 中进行)。 总结 当我直接在命
我是一名优秀的程序员,十分优秀!