Wordpress 如何在动态表中显示 ACF 字段

Posted

技术标签:

【中文标题】Wordpress 如何在动态表中显示 ACF 字段【英文标题】:Wordpress how to display ACF fields in a Dynamic Table 【发布时间】:2021-11-16 15:00:14 【问题描述】:

我必须在我之前用 acf 创建的表中显示相应的字段。我使用页面 ID 作为指南。第一个页面有效,附加 id 未加载为“tr”。

有人知道我做错了什么吗?

elseif ( is_page(59) && have_posts() ) : // Produktübersicht
  echo '<div class="container produktuebersicht">';
      while ( have_posts() ) : the_post();
          echo '<div class="row">
              <div class="col-md-12">
                  <div class="inner">';
                  $parent = $post->post_parent;
                  $currentpage = $post->ID;
                  the_content(); 

                  echo '<ul class="submenu">';
                      wp_list_pages( array(
                          'depth'       => 2,
                          'child_of'    => $parent,
                          'exclude'     => '44, 46, 48, 50, 52, 54, 57, 59',
                          'link_before' => '',
                          'title_li'    => '',
                          'sort_column' => 'menu_order'
                      ) );
                  echo '</ul> ';
                  wp_reset_postdata();  
          ?>

          <?php if(have_rows('attribute', '149', '151')): ?>
              <table class="produkttabelle">
                  <thead>
                      <tr>
                          <th>Produktname</th>
                          <th>Wirkstoff</th>
                          <th>Darreichungsform</th>
                          <th>Status</th>
                      </tr>
                  </thead>
                  <tbody>
                  <?php while( have_rows('attribute', '149', '151')) : the_row(); ?>
                      <tr>
                          <td><?=$produktname = get_sub_field('produktname');?></td>
                          <td><?=$wirkstoff = get_sub_field('wirkstoff');?></td>
                          <td><?=$darreichungsform = get_sub_field('darreichungsform');?></td>
                          <td><?=$status = get_sub_field('status');?></td>
                      </tr>
                  <?php endwhile; ?>
                  </tbody>
              </table>
          <?php endif; 
          echo '</div>
          </div>
      </div>'; ?>
  <?php endwhile;

这是 WordPress 结果:

【问题讨论】:

欢迎来到 ***,尽可能准确地描述您的问题很重要。为了提高您获得答案的机会,您应该阅读How do I ask a good question? 【参考方案1】:

have_rows 只有两个参数:field_name 和 post_ID(默认为当前帖子)

您可以将您的帖子 ID 放在一个数组中,然后使用 foreach 遍历每个帖子

【讨论】:

感谢您的回答。像这样? ... $post_id = array('post__in' => array(149,151)); ... ... $post_ids = array(149,151); foreach($post_ids as $p_id) if(have_rows('attribute', $p_id)) ........

以上是关于Wordpress 如何在动态表中显示 ACF 字段的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress ACF Repeater 背景图片只加载最后一张图片

显示所有 acf 字段和 acf 选项页面字段的 Elementor 动态字段

Wordpress + ACF,在首页显示每个帖子的随机帖子图片

表中的 ACF 中继器字段 - 在 PHP 模板中

如何获取 ACF 字段的元值(wordpress)?

Wordpress ACF 选择:动态使用类别作为选择时仅返回第一个对象