簡體   English   中英

ACF 中繼器字段未從前端提供的數據中返回任何字段

[英]ACF Repeater field not returning any fields from the data supplied in the frontend

我剛剛安裝了 ACF 插件。 我已經成功創建了我需要的字段。 我有一個名為upload_documents的轉發器字段。

在轉發器字段下,我有三個字段。 我有一個名為document_type的 select 字段、一個名為file的文件上傳字段和一個名為notes的文本字段。 對於規則,我已將其設置為顯示在名為Upload Documents的頁面上。

我是 PHP 的新手。 我知道 HTML 和 CSS。 但無論哪種方式,我都給了它一個 go 但我被困在這一點上。 似乎有些東西我似乎無法找到。 我嘗試了 var_dump,但它們返回 null。 我已提供所需的詳細信息並上傳到字段。 這是我嘗試過的。 請幫助我。


$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');

如果您是 PHP 的新手,我可以推薦這個插件https://hookturn.io/downloads/acf-theme-code-pro/它將幫助您了解 ACF 的工作原理。

提供的代碼是 output 來自您的轉發器字段 upload_documents 的 act 主題代碼 pro。

<?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; ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM