Recent Parse error: syntax error, unexpected ‘endif’ (T_ENDIF)

This bit of code is for displaying related posts and resides in my includes folder.

I have recently switched from a local development environment on a Mac (using MAMP) to using Windows with WAMP.

Read More

Suddenly this error is occurring in this block of code. It did not occur on my local Mac environment, nor does it occur when testing live.

Parse error: syntax error, unexpected ‘endif’ (T_ENDIF)

The error specifically points to the second to last endif. If I remove it the same error is thrown pointing to the last endif in the code.

Any ideas? I tried removing both of the specified endif; statements and it throws the following error instead:

Parse error: syntax error, unexpected end of file

<?php  
  $orig_post = $post;  
  global $post;  
  $tags = wp_get_post_tags($post->ID);  
?>
<?php if ($tags):  ?>
<?php  
  $tag_ids = array();  
  foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;  
  $args=array(  
  'tag__in' => $tag_ids,  
  'post__not_in' => array($post->ID),  
  'posts_per_page'=>3, // Number of related posts to display.  
  'caller_get_posts'=>1 ,
  'post_type' => array( 'post', 'featured-wedding' )
  );  

  $my_query = new wp_query( $args );  
?>
<?php if($my_query->have_posts()): ?>  
    <aside class="related group">
      <h2>You May Also Like:</h2>
      <?php while( $my_query->have_posts() ) : $my_query->the_post(); ?>

        <a href="<? the_permalink()?>">
            <!-- thumbnail -->
            <?php the_post_thumbnail(array(175,175)); ?>
            <!-- post title -->
            <?php if ( 'featured-wedding' == get_post_type() ) : ?>
              <h1>Featured Wedding: <?php the_title(); ?></h1>
            <?php else: ?>
              <h1><?php the_title(); ?>: <?php if (function_exists('the_subheading')) { the_subheading('<span>', '</span>'); } ?></h1>
            <?php endif; ?>
        </a>    

      <? endwhile; ?>
    </aside> 
<?php endif; ?>
<?php  
  $post = $orig_post;  
  wp_reset_query();  
 ?>  

<?php endif; ?>

Related posts

Leave a Reply

3 comments

  1. short_open_tag is probably not enabled in php.ini. You could set short_open_tag = On, however to be more portable, change:

      <? endwhile; ?>
    

    To:

      <?php endwhile; ?>
    

    And you should change all other <? to <?php.

    From PHP tags:

    Note:

    As short tags can be disabled it is recommended to only use the normal tags (<?php ?> and <?= ?>) to maximize compatibility.

  2. You can change short_open_tag in php.ini from OFF to ON and it will not be necessary to change all files in which not added <?php (do not forget to reboot the server (Apache, Nginx) after the change php.ini. )

  3. You can change short_open_tag in php.ini from OFF to ON and it will not be necessary to change all files in which not added <?php
    (do not forget to reboot the server (Apache, Nginx) after the change php.ini. )