WP高级自定义字段数组if语句错误

时间:2014-11-08 01:45:06

标签: php wordpress advanced-custom-fields

我使用此功能在Wordpress中使用高级自定义字段提取条件值:

    <?php if( in_array( 'Branding', get_field('services_provided') ) ) {
    echo '<div class="branding"><div class="text"><h2>Branding</h2>' . get_field('services_text_branding') . '</div>';
    if( have_rows('branding_images_repeater') ):                                 
        while ( have_rows('branding_images_repeater') ) : the_row();
        ?>
            <?php if (get_sub_field('branding_images')): ?>
            <img src="<?php echo the_sub_field('branding_images'); ?>" alt="" />
            <?php endif; ?>
        <?php endwhile; else : endif; } ?>
     <?php echo '</div> <!--end branding -->;' ?>

但是我收到此错误:PHP解析错误:语法错误,意外&#39;(&#39;在/ nas / wp / www / cluster-3024 / omniaagency / wp-content / themes / omniaagency / page第29行的-case-study-single.php,referer:http://www.mydomainname.com/

我不确定我做错了什么。

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

我格式化了你的代码,并重写了一些语法;你有一堆不需要的php标签。另外,在最后一个语句中你有一个不需要的分号:

if(in_array('Branding', get_field('services_provided'))){
    echo '<div class="branding"><div class="text"><h2>Branding</h2>' . get_field('services_text_branding') . '</div>';
    if(have_rows('branding_images_repeater')):
    while(have_rows('branding_images_repeater')) : the_row();
        if(get_sub_field('branding_images')):
        ?>
        <img src="<?php echo the_sub_field('branding_images'); ?>" alt="" />
        <?php
        endif;
    endwhile;
    else : endif;
}
echo '</div> <!--end branding -->';

所以试试吧,我认为这会让你受益匪浅。

答案 1 :(得分:0)

谢谢jaunveliz!你帮我搞清楚了。你错在了最后一个位置。在下面发布编辑过的代码。

if(in_array('Branding', get_field('services_provided'))){
echo '<div class="branding"><div class="text"><h2>Branding</h2>' . get_field('services_text_branding') . '</div>';
if(have_rows('branding_images_repeater')):
while(have_rows('branding_images_repeater')) : the_row();
    if(get_sub_field('branding_images')):
    ?>
    <img src="<?php echo the_sub_field('branding_images'); ?>" alt="" />
    <?php
    endif;
endwhile;
else : endif;

echo '</div> <!--end branding -->'};