分析错误:语法错误,Get_the_Author_Meta上出现意外的‘}’

时间:2018-06-03 作者:Summer Developer

<?php if(!empty(get_the_author_meta(\'facebook\',$part_cur_auth_obj->ID))){?><a href="<?php echo get_the_author_meta(\'facebook\',$part_cur_auth_obj->ID);?>"><i class="fab fa-facebook-f"></i></a><?php}?>
我把上面的代码放在第一行(最初是在第90行的某个地方,在那里也出错了),在我的author.php 该行上的模板。

分析错误:语法错误,作者中出现意外“}”。php在线1

注:$part_cur_auth_obj 只是我特定主题的作者对象。

有人能解释一下我做错了什么吗?是不是有什么特别的get_the_author_meta? 根据我的编辑,我似乎有适当数量的括号和花括号。。。所以我不知道为什么} 是意外的。

我知道对于if/else 但我也试过了,但没有成功,所以我不确定到底发生了什么。

根据这一点也可以看出-https://stackoverflow.com/questions/3812526/conditional-statements-in-php-code-between-html-code - 这两种语法都应该起作用。

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

让我们将其展开为更具可读性的形式:

<?php
    if ( ! empty( get_the_author_meta( \'facebook\', $part_cur_auth_obj->ID ) ) ) {
?><a href="<?php echo get_the_author_meta(\'facebook\', $part_cur_auth_obj->ID);?>">
    <i class="fab fa-facebook-f"></i>
</a><?php}?>
结束最后一行是个问题。花括号周围没有空格,这会导致错误。把它改成<?php } ?> 它会很好地工作。

所以规则是你应该在<?php 标签-否则会导致问题。您可以在此处阅读有关此主题的更多信息:http://php.net/manual/en/language.basic-syntax.phptags.php

如果你把PHP和HTML结合起来,我想最好使用:表示块而不是括号。更容易跟踪所有这些endifsendwhiles等比}.

结束