如果field_name = page_name

时间:2016-08-02 10:30:37

标签: php wordpress advanced-custom-fields

我已使用高级自定义字段填写6所学校的联系详细信息 - 这些都显示在“联系”页面上。

每所学校都有一个课程页面,我想在该学校的课程页面上显示这些联系方式。

我需要学校A的联系方式,以便在学校A"的课程中展示。页。 课程页面名称"学校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页面,学校B出现在学校B页面等。

我已添加了一些检查(为了清楚起见,已从此代码中删除),但他们表明了这一点 学校=学校A. Pagetitle =学校A. 所以匹配工作正常。

我只是坚持如何将ACF输出仅显示给学校A.

1 个答案:

答案 0 :(得分:0)

解决它......总是最简单的事情:

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