分析错误:语法错误,意外的‘Else’(T_Else)

时间:2015-11-09 作者:Ric

我正在尝试循环自定义帖子类型,代码使页面完全变白,但当我查看源代码时,我可以看到我的错误:

Parse error: syntax error, unexpected \'else\' (T_ELSE)
这是我的代码,我不知道为什么会出现这种情况,因为它是从教程中复制和粘贴的,我在许多不同的模板文件中尝试过它,我得到了相同的错误,因此错误被隐藏在这一大块代码中:

 <?
$args = array( \'post_type\' => \'members_features\', \'posts_per_page\' => 6 );
$the_query = new WP_Query( $args );
?>
<? if ( $the_query->have_posts() ) : ?>
<? while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><? the_title(); ?></h2>
    <div class="entry-content">
        <? the_content(); ?> 
    </div>
        <? wp_reset_postdata(); ?>
<? else:  ?>
    <p><? _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<? endif; ?>
当我转储查询时,该查询接收到1行数据,查询工作正常,只是PHP通知破坏了我的网站,有人能帮忙吗?

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

你没有结束你的while 在进行else:

$args = array( \'post_type\' => \'members_features\', \'posts_per_page\' => 6 );
$the_query = new WP_Query( $args );
?>
<? if ( $the_query->have_posts() ) : ?>
<? while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <h2><? the_title(); ?></h2>
    <div class="entry-content">
        <? the_content(); ?> 
    </div>
        <? wp_reset_postdata(); ?>
<?php /** no endwhile! **/
<? else:  ?>
    <p><? _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<? endif; ?>
没有HMTL,更容易看到问题:

$args = array( \'post_type\' => \'members_features\', \'posts_per_page\' => 6 );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) :
        $the_query->the_post();
        the_title();
        the_content(); 
        wp_reset_postdata();
        else: 
            _e( \'Sorry, no posts matched your criteria.\' );
    endif;

SO网友:HU ist Sebastian

您的while循环尚未结束。加入一个

<? endwhile; ?>
在wp\\u reset\\u postdata之前。

SO网友:Scriptonomy

你错过了endwhile 循环语句

    <div class="entry-content">
        <? the_content(); ?>
    </div>
    <? endwhile; ?>

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请