php7.2ifelseendif模板语法错误提⽰的处理 在php7.2⾥⾯,如果模板⾥⾯使⽤了if else endif标签的话,类似:
<? if ( $the_query->have_posts() ) : ?>
<p>XXXXXXx</p>
<? else:  ?>
<p>XXXXXXx</p>
<? endif; ?>
这种模板标签,会报如下的错误提⽰:
syntax error, unexpected end of file, expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF)
⽐如我的view模板⾥⾯写如下的代码:
<? if ( $the_query->have_posts() ) : ?>
<? while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><? the_title(); ?></h2>
<div class="entry-content">
<? the_content(); ?>
php8兼容php7吗</div>
<? wp_reset_postdata(); ?>
<? else:  ?>
<p><? _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<? endif; ?>
就会出现这种错误提⽰:
syntax error, unexpected end of file, expecting elseif (T_ELSEIF) or else (T_ELSE) or endif (T_ENDIF)
仔细检查没看到语法提⽰,这个时候是因为php.ini⾥⾯的short_open_tag标签没开启,默认的⽰关闭的,
在php.ini⾥⾯设置short_open_tag  = On;
重启php即可。