0

这是我的 wordpress 主题 index.php 的 php 代码:

<section id="content">
    <?php
        $i=1;
        while(have_posts() && i < 7):the_post();
        $tumbUrl = '';
        if(has_post_thumbnail())
        {
            $tumbUrl = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
        }
        if(i < 4):
    ?>
    <div id="row1">
        <div id="tile<?echo $i?>" class="tile">
            <div id="img<?echo $i?>" class="tileimage"<?if($tumbUrl != ''):?> style="background-image:<?echo $tumbUrl; ?>"<?endif;?>></div>
            <div id="text<?echo $i?>" class="tiletext"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
        </div>
    </div>
    <?
        else:
    ?>
    <div id="row2">
        <div id="tile<?echo $i?>" class="tile">
            <div id="img<?echo $i?>" class="tileimage"<?if($tumbUrl != ''):?> style="background-image:<?echo $tumbUrl; ?>"<?endif;?>></div>
            <div id="text<?echo $i?>" class="tiletext"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
        </div>
    </div>
    <?
        endif;
        endwhile;
    ?>
</section>

当我想运行它时,我收到错误消息,Parse error: syntax error, unexpected end of file in C:\wamp\www\wordpress\wp-content\themes\Odatis\index.php on line 31但我找不到任何错误。

有谁能够帮我?

(我的 PHP 版本是 5.4.3)

4

3 回答 3

13

它非常简单。您使用简短的开放标签<?

在您的php.ini中启用短打开标签或使用完整的 php 标签,如<?php在较新的 PHP 版本中默认禁用。但是,如果您共享代码,则不应在项目中使用可能导致问题的简短语法。

http://www.php.net/manual/en/ini.core.php#ini.short-open-tag

于 2013-03-27T11:16:15.900 回答
2

Here is the modified working code...

<section id="content">
    <?php 
        $i=1;
        while(have_posts() && i < 7):the_post();
        $tumbUrl = '';
        if(has_post_thumbnail())
        {
            $tumbUrl = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
        }
        if(i < 4):
    ?>
    <div id="row1">
        <div id="tile<?php echo $i; ?>" class="tile">
            <div id="img<?php echo $i; ?>" class="tileimage"<?php if($tumbUrl != ''): ?> style="background-image:<?php echo $tumbUrl; ?>"<?php endif; ?>></div>
            <div id="text<?php echo $i; ?>" class="tiletext"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></div>
        </div>
    </div>
    <?php 
        else:
    ?>
    <div id="row2">
        <div id="tile<?php echo $i; ?>" class="tile">
            <div id="img<?php echo $i; ?>" class="tileimage"<?php if($tumbUrl != ''): ?> style="background-image:<?php echo $tumbUrl; ?>"<?php endif; ?>></div>
            <div id="text<?php echo $i; ?>" class="tiletext"><a href="<?php the_permalink(); ?>" rel="bookmark" title="a<?php the_title(); ?>"><?php the_title(); ?></a></div>
        </div>
    </div>
    <?php 
        endif;
        endwhile;
    ?>
</section>
Note: Make sure the ending mark(;) are there and also the space as required.
于 2013-03-27T11:42:39.800 回答
1

尝试全部替换<?echo ###?><?= ### ?>. 或者,如果您的 PHP < 5.4,您需要在 php.ini 中启用短打开标记。

aww no: 中缺少分号<?php the_permalink() ?>

其中之一应该修复它,否则我很抱歉:/

于 2013-03-27T11:18:15.497 回答