首页 > 解决方案 > 输出具有 ACF 关系的相关帖子的 the_field

问题描述

首先,感谢您的帮助。

我必须按照代码显示从一种自定义帖子类型到另一种具有 ACF 关系的相关帖子。

我想知道,是否有可能以及如何重写代码,以输出我使用关系字段选择的相关帖子的任何自定义字段?

<?php 
$posts = get_field('product_id');

    if( $posts ): ?>
        <ul>
        <?php foreach( $posts as $p ): ?>
            <li>
                <a href="<?php echo get_permalink( $p->ID ); ?>"><?php echo get_the_title( $p->ID ); ?></a>
            </li>
        <?php endforeach; ?>
        </ul>
  <?php endif; ?>

就像我在这里做的那样,是:

echo get_permalink( $p->ID );

我想回应:

the_field('field_name')

问候,阿克塞尔

标签: phpwordpressadvanced-custom-fields

解决方案


如果您查看the_field()函数的文档,您会注意到它可以将帖子/页面 ID 作为第二个参数,因此您可以检索特定帖子/页面字段的字段值:

参数

the_field($selector, [$post_id], [$format_value]);

  • $selector(字符串)(必需)字段名称或字段键。
  • $post_id(混合)(可选)保存值的帖子 ID。默认为当前帖子。
  • $format_value(bool) (可选) 是否应用格式化逻辑。默认为真。

因此,例如:

<?php
$posts = get_field('product_id');

if( $posts ): ?>
    <ul>
    <?php foreach( $posts as $p ): ?>
        <li>
            <a href="<?php echo get_permalink( $p->ID ); ?>"><?php echo get_the_title( $p->ID ); ?></a>

            <?php the_field('field_name', $p->ID); ?>
        </li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>

推荐阅读