Использование почтового объекта внутри поля повторителя ACF

Я использую расширенные настраиваемые поля на своем веб-сайте.

У меня есть поле повторителя с именем anime_par, а поле sub_field называется 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; ?>

Любые предложения, чтобы сделать эту работу?

Спасибо за вашу помощь,


person mmdwc    schedule 23.06.2014    source источник
comment
Я думаю, что ваш синтаксис немного не соответствует функциям get_permalink и get_title. Вы хотите передать идентификатор сообщения. Прямо сейчас вы передаете строку. Может попробовать get_permalink(get_the_ID(the_sub_field('animateur')));   -  person codescribblr    schedule 24.06.2014


Ответы (3)


Этот метод работает для меня, согласно ретранслятору и документам по объектам на ACF. Вы должны настроить объект сообщения внутри цикла повторителя.

Я добавил в ваши имена полей и несколько совершенно необязательных 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; ?>
person Jimmy Smutek    schedule 21.10.2014

the_sub_field не работает без has_sub_field Что вам нужно сделать, так это использовать цикл с has_sub_field, как указано в документации http://www.advancedcustomfields.com/resources/functions/the_sub_field/

или вы можете использовать get_field('repeater_sluf') вот так

$rows = get_field('repeater_field_name' ); // get all the rows
$first_row = $rows[0]; // get the first row
$first_row_image = $first_row['sub_field_name' ]; // get the sub field value 
person Maxim Pokrovskii    schedule 24.06.2014

person    schedule
comment
Хотя этот код может дать ответ на вопрос, вам, вероятно, следует включить в него текст, объясняющий, почему он решает проблему спрашивающего. - person Jeffrey Bosboom; 15.03.2015