在ACF转发器字段内使用post对象

mmd*_*dwc 1 php wordpress loops custom-fields advanced-custom-fields

我在我的网站上使用高级自定义字段.

我有一个名为anime_par的转发器字段,sub_field称为animateur.子字段animateur是一个后对象.

我在我的页面中的循环中使用它,这个循环显示自定义帖子类型中的类别的帖子.

我要做的是在我的页面中显示animateur选择的帖子名称和帖子链接.

这是我正在使用的代码,但它不起作用,它显示我当前页面的永久链接,而不是在自定义字段中选择的代码.

<?php while(has_sub_field('anime_par')): ?>

<a href="<?php echo get_permalink('the_sub_field("animateur")'); ?>"><?php echo get_title('the_sub_field("animateur")'); ?></a>

<?php endwhile; ?>
Run Code Online (Sandbox Code Playgroud)

有什么建议使这项工作?

谢谢你的帮助,

小智 6

根据ACF上的转发器和后期对象文档,此方法对我有用.您必须在转发器循环内设置post对象.

我在你的字段名称中添加了一些完全可选的html以显示结构.

希望能帮助到你.

<!-- Start Repeater -->
<?php if( have_rows('anime_par')): // check for repeater fields ?>

<div class="a-container">

    <?php while ( have_rows('anime_par')) : the_row(); // loop through the repeater fields ?>

    <?php // set up post object
        $post_object = get_sub_field('animateur');
        if( $post_object ) :
        $post = $post_object;
        setup_postdata($post);
        ?>

    <article class="your-post"> 

        <?php the_title(); ?>
        <?php the_post_thumbnail(); ?>
        <?php // whatever post stuff you want goes here ?>

    </article>

    <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>

    <?php endif; ?> 

    <?php endwhile; ?>

</div>
<!-- End Repeater -->
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)