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_tagsphp.ini ディレクティブが設定されていない可能性があります。docsによると、これが可変値印刷の速記を可能にするものです。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 に答える