【发布时间】:2015-02-08 18:29:22
【问题描述】:
在我的帖子页面(常规帖子类型)中,我设置了一个 ACF 关系字段。在这里面我可以选择公司名称,它们都在 directory_listings 的帖子类型下。
现在,我在目录列表页面上有以下代码,因此仅使用 get_field 不起作用,因为这些值不在此页面上,而是在 POST 类型的其他位置。
所以不确定如何获取信息。
在 DIRECTORY_LISTINGS 帖子类型下的其中一个页面上的代码:
$posts = get_field('related_articles');
if( $posts ): ?>
<ul>
<?php foreach( $posts as $post): // variable must be called $post (IMPORTANT) ?>
<?php setup_postdata($post); ?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>
示例图,因为我不擅长通过文本进行解释。
目前我已经在公司编辑页面(directory_listing)上设置了关系字段。它在执行以下操作时起作用: 1) 与此商家列表相关的帖子 -> 选择一个帖子 -> 发布 -> 现在在商家列表页面上显示列表。此处示例:http://bit.ly/1vwydDl(页面底部)
2) 我想从 POST 编辑页面中选择一个将出现帖子的公司。我可以通过 ACF 将字段放在那里没问题,但让它实际显示我无法弄清楚的结果。
【问题讨论】:
-
每个帖子都有一个ID,所以当你在foreach中调用
get_field时,你需要传递$post->ID。我想这就是你的意思,对吧? -
好吧,get_field 现在什么也得不到,因为在 'post' 类型而不是 'directory_listings' 帖子类型上找到了 'related_directories' 字段。所以 var_dump($posts) 目前没有显示任何内容/NULL,这是预期的。它需要进入不同的帖子类型,抓取信息并将其带回 directory_listings 帖子类型以输出信息。
-
是的,所以在您获取帖子的文件中,您调用了关系字段。然后你遍历你的 $posts 变量。
<?php foreach( $posts as $post): $some_field = get_field('field_name', $post->ID); ?>这样的东西应该可以工作。
标签: wordpress advanced-custom-fields