高级定制字段的Else If语句

时间:2016-10-19 作者:MikeL5799

我制作了一个混合网格,其中包含通过高级自定义字段填充的内容。一切正常,只是当我在WordPress admin中的ACF中设置了一个if/else语句来匹配我设置的复选框时,它会导致一个500错误。这是包含if/else语句的主要代码块:

    <div class="watcheroos">
    <?php

    if(count($postslist) > 0) { ?>

    <ul class="list-unstyled">

    <?php 

        $clearfix_counter = 0;

        foreach ($new_list as $index => $post) { 

        $bkg_id =  get_post_thumbnail_id( $post->ID );
        $bkg_src = wp_get_attachment_image_src( $bkg_id, \'medium\' );
        $bkg_src_lg = wp_get_attachment_image_src( $bkg_id, \'large\' );  

        $network = get_post_meta($post->ID,\'network\',true);
        $timeofday = get_post_meta($post->ID,\'time_of_day\',true);
        $date = get_post_meta($post->ID,\'date\',true);
        $producer = get_post_meta($post->ID,\'producer\',true);


        if($index %8 == 0 || $index %9 == 0 || $index == 1 ) { ?>

            <?php if ($index == 0) { ?>

                <li class="watcheroo first <?php if($addClass){echo \'widewidth\'; } ?>" id="<?php echo sanitize_title($post->post_title); ?>">

                    <div class="content" <?php if($bkg_src_lg[0]){ echo \'style="background-image: url(\' . $bkg_src_lg[0] . \');"\'; } ?> >

                    </div>
                    <div class="featured-info">
                        <h4><?php echo $post->post_title; ?></h4>
                        <div class="info">
                            <div class="network"><strong>Network:</strong> <?php echo $network; ?></div>
                            <div class="timeofday"><strong>Time-of-day:</strong> <?php echo $timeofday; ?></div>
                            <div class="date"><strong>Date:</strong> <?php echo $date; ?></div>
                            <div class="producer"><strong>Produced by:</strong> <?php echo $producer; ?></div>
                            <?php echo apply_filters(\'the_content\', $post->post_content); ?>
                            <?php 
                                $terms = get_the_terms($post->ID,\'watcheroo_production_credits\');
                                if($terms) {
                                    echo \'<ul class="credits list-unstyled list-inline">\'; 
                                    foreach ($terms as $term) {
                                        echo \'<li>\' . $term->name . \'</li>\';
                                    }
                                    echo \'</ul>\';
                                }
                            ?>
                        </div>
                    </div>

                </li>



            <?php } elseif(get_field(\'wide_box\')): { ?>

                <li class="watcheroo wider" id="<?php echo sanitize_title($post->post_title); ?>">
                    <div class="content" <?php if($bkg_src_lg[0]){ echo \'style="background-image: url(\' . $bkg_src_lg[0] . \');"\'; } ?> >
                        <div class="overlay">
                            <div class="caption">
                                <h4><?php echo $post->post_title; ?></h4>
                                <div class="info">
                                    <div class="network"><strong>Network:</strong> <?php echo $network; ?></div>
                                    <div class="timeofday"><strong>Time-of-day:</strong> <?php echo $timeofday; ?></div>
                                    <div class="date"><strong>Date:</strong> <?php echo $date; ?></div>
                                    <div class="producer"><strong>Produced by:</strong> <?php echo $producer; ?></div>
                                    <?php //echo apply_filters(\'the_content\', $post->post_content); ?>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="expanded-content">
                        <?php echo apply_filters(\'the_content\', $post->post_content); ?>
                        <?php 
                            $terms = get_the_terms($post->ID,\'watcheroo_production_credits\');
                            if($terms) {
                                echo \'<ul class="credits list-unstyled list-inline">\'; 
                                foreach ($terms as $term) {
                                    echo \'<li>\' . $term->name . \'</li>\';
                                }
                                echo \'</ul>\';
                            }
                        ?>
                    </div>
                </li>   

            <?php }

        } else { ?>

            <li class="watcheroo <?php if($addClass){echo \'widewidth\'; } ?>" id="<?php echo sanitize_title($post->post_title); ?>">
                <div class="content" <?php if($bkg_src[0]){ echo \'style="background-image: url(\' . $bkg_src[0] . \');"\'; } ?> >
                    <div class="overlay">
                        <div class="caption">
                            <h4><?php echo $post->post_title; ?></h4>
                            <div class="info">
                                <div class="network"><strong>Network:</strong> <?php echo $network; ?></div>
                                <div class="timeofday"><strong>Time-of-day:</strong> <?php echo $timeofday; ?></div>
                                <div class="date"><strong>Date:</strong> <?php echo $date; ?></div>
                                <div class="producer"><strong>Produced by:</strong> <?php echo $producer; ?></div>
                                <?php //echo apply_filters(\'the_content\', $post->post_content); ?>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="expanded-content">
                    <?php echo apply_filters(\'the_content\', $post->post_content); ?>
                    <?php 
                        $terms = get_the_terms($post->ID,\'watcheroo_production_credits\');
                        if($terms) {
                            echo \'<ul class="credits list-unstyled list-inline">\'; 
                            foreach ($terms as $term) {
                                echo \'<li>\' . $term->name . \'</li>\';
                            }
                            echo \'</ul>\';
                        }
                    ?>
                </div>
            </li>

        <?php } 

    } ?>    

    </ul>

     <div class="clearfix"></div>

       <?php } endif; ?>

     </div>

     </div>

     <?php foreach ($postslist as $post) { 

        $network = get_post_meta($post->ID,\'network\',true);
        $timeofday = get_post_meta($post->ID,\'time_of_day\',true);
        $date = get_post_meta($post->ID,\'date\',true);
        $producer = get_post_meta($post->ID,\'producer\',true);
        $bkg_id =  get_post_thumbnail_id( $post->ID );
        $bkg_src = wp_get_attachment_image_src( $bkg_id, \'medium\' ); 

    ?> 

      <div id="<?php echo $post->ID . \'-\' . sanitize_title($post->post_title); ?>" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalwindow">
     <div class="modal-dialog modal-lg">
       <div class="modal-content">
          <div class="modal-body"> 
           <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
        <?php if($bkg_src[0]){ ?><img class="alignleft" src="<?php echo $bkg_src[0]; ?>" /><?php } ?> 
        <h1 class="modal-title"><?php echo $post->post_title; ?></h1>
        <div class="network"><strong>Network:</strong> <?php echo $network; ?></div>
        <div class="timeofday"><strong>Time-of-day:</strong> <?php echo $timeofday; ?></div>
        <div class="date"><strong>Date:</strong> <?php echo $date; ?></div>
        <div class="producer"><strong>Produced by:</strong> <?php echo $producer; ?></div>
        <?php echo apply_filters(\'the_content\', $post->post_content); ?>
        <div class="clearfix"></div>
      </div>
       <div class="modal-footer"> 
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
         </div>
     </div>
    </div>
   </div>

   <?php } ?>
我是否放置endif;在错误的地点?我试着把它放在不同的地方,如果有任何帮助,我将不胜感激。

1 个回复
最合适的回答,由SO网友:socki03 整理而成

看起来您混合了两种类型的if/else语句

<?php } elseif(get_field(\'wide_box\')): { ?>
应该是

<?php } else if ( get_field(\'wide_box\') ) { ?>
以及

<?php } endif; ?>
应该是

<?php } ?>