-4

我已经检查了这段代码几个小时,但找不到缺少的逗号、括号或引号等。我是 PHP 初学者,但我正在尝试 - 找到它的任何帮助都会很棒。我得到的错误是:

PHP Parse 错误:语法错误,第 235 行中的意外 $end of file in ...

这是我的代码:

<?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

您还缺少 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 回答
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 回答
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 ... ?>

因此,每个 PHPifelseif(或实际上任何语句)只占用一行,从而更容易查看您的缩进是否匹配。请注意,虽然循环/构造的大括号形式更适合“正确的”PHP,其中 PHP 在视图层中使用,但我更喜欢冒号形式,因为它更紧凑,并且末端描述比扫描阅读更容易一个右大括号。

另外,我已将您的内联background规则切换为background-image,并建议您设置“bgnd”类:

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

这将使事情变得更加干燥(不要重复自己),从而节省您的时间和精力。

最后,我缩进了divs,所以它们的属性是每行一个。这是一个口味问题,但 imo 它更具可读性,并且作为 HTML 仍然完全有效。它还有一个好处是你需要在你的 IDE 中做更少/没有水平滚动,这可以让调试时更轻松一些。

于 2013-03-11T21:49:22.053 回答