其他问题

时间:2016-05-18 13:59:49

标签: php if-statement advanced-custom-fields

我正在尝试写一个else语句有些麻烦。基本上,如果转发器字段在那里并显示内容,那么,如果转发器字段中没有内容显示此内容。

这是没有我从

开始的else语句的原始代码
                <div class="tabs-panel" id="panel5">
                <?php 
                if ( have_rows( 'ar_content' ) ):
                    $i = 0;
                    $n = count( get_field('ar_content') ); 
                ?>
                    <div class="row">
                        <?php 
                        while ( have_rows( 'ar_content' ) ): 
                            the_row();
                            $i++;
                        ?>
                            <div class="small-12 medium-4 columns">
                                <?php the_sub_field('ar_block'); ?>
                            </div>
                            <? if ($i % 3 == 0 && $i < $n) : ?>
                                </div>
                                <div class="row">
                        <?php 
                            endif;
                        endwhile; 
                        ?>
                    </div>
                <? endif; ?>
            </div><!-- end panel 5 -->

以下是我正在尝试的代码。我认为它只是用else替换最后的endif并移动到else的内容?

                <div class="tabs-panel" id="panel5">
                <?php 
                if ( have_rows( 'ar_content' ) ):
                    $i = 0;
                    $n = count( get_field('ar_content') ); 
                ?>
                    <div class="row">
                        <?php 
                        while ( have_rows( 'ar_content' ) ): 
                            the_row();
                            $i++;
                        ?>
                            <div class="small-12 medium-4 columns">
                                <?php the_sub_field('ar_block'); ?>
                            </div>
                            <? if ($i % 3 == 0 && $i < $n) : ?>
                                </div>
                                <div class="row">
                        <?php 
                            endif;
                        endwhile; 
                        ?>
                    </div>
                <? } else { ?>
                <h2>content to show if nothing is above</h2>
            <?php endif; ?>
            </div><!-- end panel 5 -->

不工作,任何想法。是的,如果这是完全顶起的,我是PHP的新手

2 个答案:

答案 0 :(得分:5)

您使用的语法错误,请阅读here,更改:

<? } else { ?>

为:

<? else: ?>

您应该使用 colon brackets语法,但不能同时使用两者。

答案 1 :(得分:0)

<div class="tabs-panel" id="panel5">
            <?php
            if ( have_rows( 'ar_content' ) ) {
                $i = 0;
            }
$n = count( get_field('ar_content') );
?>
<div class="row">
<?php
    if(have_rows( 'ar_content' )){
        while ( have_rows( 'ar_content' ) ){
        the_row();
        $i++;
    ?>
        <div class="small-12 medium-4 columns">
            <?php the_sub_field('ar_block'); ?>
        </div>
        <? if ($i % 3 == 0 && $i < $n) { ?>
        </div>
        <div class="row">
            <?php
            } // endif;
            } // endwhile;
        ?>
        </div>
<?php } else {
        echo "<h2>content to show if nothing is above</h2>";
     }
?>

这就是你需要的。