0

我有一个 foreach 循环,它遍历注释,如下所示:

<?php 
    $comments = get_comments(array("status"=>"approve"));
    foreach ( $comments as $comment ) { ?>
    <div class="comment">
        <h2><? echo get_comment_meta( $comment->comment_ID, "subject", $single = true ); ?></h2>
        <p class="message"><?=$comment->comment_content;?></p>
    </div>
<? } ?>

当我在实时服务器上运行它时,我收到以下错误:Parse error: syntax error, unexpected end of file in D:\UniServer\www\apps\app_name\wp-content\themes\sube\page-feedback.php on line 53

当我在本地运行站点时不会发生这种情况。所以我认为它是服务器配置错误。

此外,当我更改代码以使其回显内容时,它可以正常工作。例如:

<?php 
    $comments = get_comments(array("status"=>"approve"));
    foreach ( $comments as $comment ) {
    echo '<div class="comment">
        <h2>'; get_comment_meta( $comment->comment_ID, "subject", $single = true ); echo'</h2>
        <p class="message">'.$comment->comment_content.'</p>
    </div>';
 } ?>
4

3 回答 3

1

您的实时服务器可能没有asp_tags设置 php.ini 指令。根据文档,这就是启用可变值打印速记的原因。您还需要确保short_open_tag也已启用。

于 2012-12-06T18:18:13.457 回答
1

当我在本地运行站点时不会发生这种情况。所以我认为它是服务器配置错误。

是的,这是因为一个名为short_open_tag的功能。必须启用该功能以允许您使用的短格式语法样式,例如<?=(它的缩写<?php echo)等。

正如您在手册中所读到的,如果您还打算<?xml ?>在 PHP 文件中逐字使用标签,那么短格式将导致冲突。

于 2012-12-06T18:18:50.317 回答
0

摆脱echo眼前get_comment_meta()

于 2012-12-06T18:28:14.670 回答