Поле ACF Repeater, не возвращающее никаких полей из данных, предоставленных во внешнем интерфейсе - PullRequest
0 голосов
/ 23 апреля 2020

Я только что установил плагин ACF. Я успешно создал поля, которые мне нужны. У меня есть поле повторителя под названием upload_documents.

Под полем повторителя у меня есть три поля. У меня есть поле выбора с именем document_type, поле загрузки файла с именем file и текстовое поле с именем notes. Для правил я установил его для отображения страницы с именем Upload Documents.

Я новичок в PHP. Я знаю HTML и CSS. Но в любом случае, я дал ему go, но я застрял в этой точке. Кажется, что-то не так, что я не могу выяснить. Я попытался var_dump, но они возвращают ноль. Я предоставил необходимые данные и загрузил в поля. Вот что я попробовал. Пожалуйста, помогите мне.


$user_id = get_current_user_id();
ob_start(); ?>
<?php if( have_rows('upload_documents',"user_{$user_id}" ) ): ?>

<table>
   <tr>
    <td>Column 1 header</td><td>Column 2 header</td><td>Column 3 header</td><td>Column 4 header</td>
   </tr>

<?php while ( have_rows('upload_documents', "user_{$user_id}" ) ) : the_row(); 

    // vars
    $var1 = get_sub_field('document_type');
    $var2 = get_sub_field('file');
    $var3 = get_sub_field('notes');
    $var4 = get_sub_field('subfield_4_name');

?>
    <tr>
        <td><?php echo $var1; ?></td><td><?php echo $var2; ?></td><td><?php echo $var3; ?></td><td><?php echo $var4; ?></td>
    </tr>


<?php endwhile; ?>

</table>
<?php else: echo '<span>No data</span>'; ?>
<?php endif; ?>
<?php $output = ob_get_clean();
return $output;
}

add_shortcode('acf_repeater_shortcode', 'acf_repeater');

1 Ответ

0 голосов
/ 27 апреля 2020

Если вы новичок в PHP, я могу порекомендовать этот плагин https://hookturn.io/downloads/acf-theme-code-pro/, он поможет вам понять, как работает ACF.

При условии, что код выводится из кода актовой темы pro для вашего поля повторителя upload_documents.

<?php if ( have_rows( 'upload_documents' ) ) : ?>
    <?php while ( have_rows( 'upload_documents' ) ) : the_row(); ?>
        <?php the_sub_field( 'document_type' ); ?>
        <?php $file = get_sub_field( 'file' ); ?>
        <?php if ( $file ) { ?>
            <a href="<?php echo $file['url']; ?>"><?php echo $file['filename']; ?></a>
        <?php } ?>
        <?php the_sub_field( 'notes' ); ?>
    <?php endwhile; ?>
<?php else : ?>
    <?php // no rows found ?>
<?php endif; ?>
...