I’m using Flexible Content with Select fields to post data and am receiving an error: Parse error: syntax error, unexpected ‘:’…line 51:
Line 51 is the elseif( get_row_layout() == 'blue_content_blocks' ):
<?php
// check if the flexible content field has rows of data
if( have_rows('text_section') ):
// loop through the rows of data
while ( have_rows('text_section') ) : the_row();
if( get_row_layout() == 'blue_content_blocks' ):
if(get_field('columns') == "1") {
the_sub_field('title');
the_sub_field('text');
}
elseif( get_row_layout() == 'blue_content_blocks' ):
if (get_field('columns') == "2") {
the_sub_field('title');
the_sub_field('text_copy');
}
endif;
endwhile;
endif;
?>
php thinks that it’s looking at this
if(get_field('columns') == "1") {
the_sub_field('title');
the_sub_field('text');
} elseif( get_row_layout() == 'blue_content_blocks' ):
you can clear this up by added brackets to all your condition blocks
<?php
// check if the flexible content field has rows of data
if( have_rows('text_section') ):
while ( have_rows('text_section') ) : the_row();
if( get_row_layout() == 'blue_content_blocks' ) {
if(get_field('columns') == "1") {
the_sub_field('title');
the_sub_field('text');
}
} elseif( get_row_layout() == 'blue_content_blocks' ) {
if (get_field('columns') == "2") {
the_sub_field('title');
the_sub_field('text_copy');
}
}
endwhile;
endif;
?>
one of the many and varied reasons I never use alternate sintax for loops and conditionals in PHP.
Well that took care of the problem. Now I need to figure out why my content won’t post! Back to work!
In the end it doesn’t really matter if you use brackets or alternate syntax, what’s important is that you pick one and stick with it. This could have also been solved by replacing all the brackets with alternate syntax.