解析错误:语法错误,WordPress主题中意外的'endif'(T_ENDIF)

时间:2013-11-22 19:48:27

标签: php wordpress

这段代码用于显示相关帖子并驻留在我的包含文件夹中。

我最近从Mac上的本地开发环境(使用MAMP)切换到使用WAMP的Windows。

此代码块中突然出现此错误。它不会发生在我的本地Mac环境中,也不会在实时测试时发生。

  

解析错误:语法错误,意外'endif'(T_ENDIF)

错误明确指向倒数第二个endif。如果我删除它,则会抛出相同的错误,指向代码中的最后一个endif

有什么想法吗?我尝试删除两个指定的endif;语句,但它会引发以下错误:

  

解析错误:语法错误,意外的文件结尾

<?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; ?>

3 个答案:

答案 0 :(得分:20)

short_open_tag可能未在php.ini中启用。变化:

  <? endwhile; ?>

要:

  <?php endwhile; ?>

您应该将所有其他<?更改为<?php

答案 1 :(得分:0)

您可以将 short_open_tag 中的 php.ini 从 OFF 更改为 ON,并且不需要更改所有未添加 <?php 的文件(不要忘记重新启动服务器(Apache , Nginx) 更改后的 php.ini。)

答案 2 :(得分:-2)

您可以将short_open_tag中的php.ini从OFF更改为ON,而无需更改未添加<?php的所有文件 (不要忘记在更改php.ini后重启服务器。)