我试着用一个中继场,但似乎不能让它工作。我认为这是我的if语句的问题,因为如果我删除while循环并尝试从<?php if( have_rows($aboutInfo['cards']): ?>
中回显任何内容,我什么也得不到。我试过不带ID,用硬编码的ID作为第二个参数。另外,为了测试,我做了<?php if( !have_rows($aboutInfo['cards']): ?>
,并能够得到一些东西来回显。
if语句上面的print_r显示数组。
<?
/*
Template Name: 01-Homepage
*/
get_header(); ?>
<? $aboutInfo = get_field( 'about' ) ?>
<?$postid = get_the_ID(); ?>
<div class="row">
<div class="columns small-12 medium-7">
<h2>
<?= $aboutInfo['title'] ?>
</h2>
<p class="lead"> <?= $aboutInfo['content'] ?></p>
<pre><?php print_r($aboutInfo['cards']) ?></pre>
<?php if( have_rows($aboutInfo['cards'], $postid) ): ?>
<?php while(have_rows($aboutInfo['cards'])) : the_row(); ?>
<?php $image = get_sub_field('image') ?>
<p><?= $image['url'] ?></p>
<?php endwhile; ?>
<?php endif; ?>
</div>
</div>
<?php get_footer(); ?>
下面是我的ACF的外观
3条答案
按热度按时间iyfjxgzm1#
我认为你做错了。你的代码里有很多bug。检查https://www.advancedcustomfields.com/resources/group/和have_rows(),第一个参数需要是选择器。检查下面的代码。
hujrc8aj2#
问题是我创建了一个名为“about”的组,“cards”嵌套在该组中,要访问该字段,我需要使用“about_cards”。
brccelvz3#