-4

私はこのコードを何時間も調べてきましたが、不足しているコンマ、括弧、引用符などを見つけることができません。私はPHPの初心者ですが、試しています。私が得るエラーは次のとおりです。

PHP解析エラー:構文エラー、235行目の...に予期しない$endのファイルがあります

これが私のコードです:

<?php
    $page = get_page_by_title( 'CSA' );
    $page1 = get_page_by_title( 'Co-op Members' );
    $page2 = get_page_by_title( 'Recipes' );
    $page3 = get_page_by_title( 'FAQs' );
    $page4 = get_page_by_title( 'Contact Us' );
    $page5 = get_page_by_title( 'Home' );

    if ( is_page($page->ID) )
    {?>
        <div id="page-bg" style="background: url('<?php bloginfo('template_directory'); ?>/images/green/page-top5.jpg') no-repeat scroll center bottom #244714 !important;">
    <?php
    }elseif ( is_page($page1->ID) )
    {?>
        <div id="page-bg" style="background: url('<?php bloginfo('template_directory'); ?>/images/green/page-top2.jpg') no-repeat scroll center bottom #244714 !important;">
    <?php
    }elseif ( is_page($page2->ID) )
    {?>
        <div id="page-bg" style="background: url('<?php bloginfo('template_directory'); ?>/images/green/page-top3.jpg') no-repeat scroll center bottom #244714 !important;">
    <?php   
    }elseif ( is_page($page3->ID) )
    {?>
        <div id="page-bg" style="background: url('<?php bloginfo('template_directory'); ?>/images/green/page-top4.jpg') no-repeat scroll center bottom #244714 !important;">
    <?php
    }elseif ( is_page($page4->ID) )
    {?>
        <div id="page-bg" style="background: url('<?php bloginfo('template_directory'); ?>/images/green/page-top5.jpg') no-repeat scroll center bottom #244714 !important;">
    <?php
    }elseif ( is_page($page5->ID) )
    {?>
        <div id="page-bg" style="background: url('http://ycgrown.com/wp-content/uploads/2013/03/Cherry-Tomatoes.jpg') no-repeat scroll center bottom #244714 !important;">
<?php
    }else{
?>
        <div id="page-bg" style="background: url('http://ycgrown.com/wp-content/uploads/2013/03/Cherry-Tomatoes.jpg') no-repeat scroll center bottom #244714 !important;">

編集:PHPタグを追加しましたが、それでもエラーが発生します-さらにアイデアはありますか?

4

3 に答える 3

1

PHPタグがありません:

{?>
            <div id="page-bg" style="background: url('http://xyz.com/wp-content/uploads/2013/03/Cherry-Tomatoes.jpg') no-repeat scroll center bottom #244714 !important;">
<?php
        }else{
?>
            <div id="page-bg" style="background: url('http://xyz.com/wp-content/uploads/2013/03/Cherry-Tomatoes.jpg') no-repeat scroll center bottom #244714 !important;">
于 2013-03-11T21:21:54.463 に答える
1

また、else 条件の右中括弧がありません

 }else{
?>
        <div id="page-bg" style="background: url('http://ycgrown.com/wp-content/uploads/2013/03/Cherry-Tomatoes.jpg') no-repeat scroll center bottom #244714 !important;">
 <?php
 }
 ?>
于 2013-03-11T21:31:24.890 に答える
0

このコードを整理するためにできることがいくつかあります。理想的には、最初にコードをコントローラーに入れ、レンダリングは主にいくつかの PHP スニペットを含む HTML になります。

<?php
// This would be best in a controller class, but for now we'll enclose
// it in its own little section
$page = get_page_by_title( 'CSA' );
$page1 = get_page_by_title( 'Co-op Members' );
$page2 = get_page_by_title( 'Recipes' );
$page3 = get_page_by_title( 'FAQs' );
$page4 = get_page_by_title( 'Contact Us' );
$page5 = get_page_by_title( 'Home' );
?>

<!-- This is your 'view layer', so keep your PHP small and concise -->
<?php if ( is_page($page->ID) ): ?>
    <div
        id="page-bg"
        class="bgnd"
        style="background-image: url('<?php bloginfo('template_directory') ?>/images/green/page-top5.jpg');"
    >
<?php elseif ( is_page($page1->ID) ): ?>
    <div
        id="page-bg"
        class="bgnd"
        style="background-image: url('<?php bloginfo('template_directory') ?>/images/green/page-top2.jpg');"
    >
<?php elseif ... ?>

したがって、各 PHP ifor elseif(または実際には任意のステートメント) は 1 行しか使用しないため、インデントが一致しているかどうかを簡単に確認できます。ループ/コンストラクトのブレース形式は、PHP がビュー レイヤーで使用される "適切な" PHP に適していますが、私はコロン形式を好みます。閉じ中括弧。

また、インラインbackgroundルールを に切り替えましbackground-imageた。「bgnd」クラスを次のように設定することをお勧めします。

.bgnd { background: no-repeat scroll center bottom #244714 !important; }

そうすることで物事はより DRY (Don't Repeat Yourself) になり、時間と労力を節約できます。

div最後に、属性が 1 行に 1 つになるように sをインデントしました。これは好みの問題ですが、より読みやすく、HTML として完全に有効です。また、IDE での水平スクロールが少なくて済む、またはまったくないという利点もあります。これにより、デバッグの作業が少し楽になります。

于 2013-03-11T21:49:22.053 に答える