ACF中继器显示行字段if field_name = page_name
问题描述:
我已经使用高级自定义字段来填写6所学校的联系信息 - 这些信息都显示在联系页面上。ACF中继器显示行字段if field_name = page_name
每所学校都有一个课程页面,我想在该学校的课程页面上显示这些联系信息。
我需要学校A的联系方式,以显示在“学校A的课程”页面上。 课程页面名称“School A”与get_sub_field('school_name')完全相同。
<?php if(have_rows('schools', 45)): ?> // 45 is post ID in WP
<?php while (have_rows('schools', 45)): the_row();
// vars
$pagetitle = get_the_title(); // get page title in WP
$school = get_sub_field('school_name'); // get school name
if ($school == $pagetitle){ // IF they are the same THEN
?>
<article class="school-contacts">
<ul class="contact-info">
<li><strong><?php echo $school; ?></strong></li>
//other fields omitted for clarity
</ul>
</article>
<?php } ?>
<?php endwhile; endif; ?>
我的问题是,当我这样做时,所有的学校都会出现。
我需要找到一种方法,以便只A学校在校显示一个页面,乙校网页上乙校等
我在一些检查(此代码为清楚起见删除),但加入他们显示 学校=学校A Pagetitle =学校A 所以匹配工作正常。
我只是坚持我如何能得到ACF输出,只显示学校A.
答
解决它......总是最简单的事情:
<?php if(have_rows('schools', 45)):
while (have_rows('schools', 45)): the_row();
// vars
$pagetitle = get_the_title();
$school = get_sub_field('school_name');
$logo = get_sub_field('logo');
$contact = get_sub_field('contact_name');
$title = get_sub_field('contact_title');
$email = get_sub_field('contact_email');
$website = get_sub_field('contact_website');
$phone = get_sub_field('contact_phone');
?>
<?php if ($school == $pagetitle) : the_row(); ?>
// needed : the_row(); to output the result
<article class="school-contacts">
<div class="school-logo"><img src="<?php echo $logo; ?>" width="100%" /></div>
<ul class="contact-info">
<li><strong><?php echo $school; ?></strong></li>
<li><?php echo $contact; ?></li>
<li><i><?php echo $title; ?></i></li>
<li><?php echo $phone; ?></li>
<li><a href="mailto:<?php echo $email; ?>"><?php echo $email; ?></a></li>
<li><a href="<?php echo $website; ?>"><?php echo $website; ?></a></li>
</ul>
</article>
<?php endif; endwhile; endif; ?>