有人可以解释这个PHP代码吗?

时间:2015-08-05 22:47:21

标签: php wordpress-theming

    <h1 class="site-title">
       <a href="<?php echo esc_url( home_url( '/' ) ); ?>" 
       rel="home"><?php bloginfo( 'name' ); ?>
       </a>
    </h1>
    if (is_category('Ponies')) { ?>
      // overlay a pretty rainbow on the logo for the ponies category
       <img id="rainbow"
          src='<?php bloiginfo('template_directory');?>/img/rainbow.png" 
          alt="OMG! Ponies! " />
    <?php  } ?>

我在匹配PHP标记时遇到问题。该代码的评论说:“现在任何时候内容的类别都是小马,你的标题还包括rainbow.png。”但很清楚这是怎么回事。实际代码在威廉姆斯的WordPress设计和开发的p245上。谢谢你把另一双眼睛放在上面。

2 个答案:

答案 0 :(得分:1)

&#34;如果&#34;不在<?php ... ?>内。必须是:

<?php if (is_category('Ponies')) { ?>

答案 1 :(得分:0)

当中间有HTML时,我更喜欢使用<?php if (condition): ?>。 但无论如何......

1)if()语句需要在php标签内。

2)您不需要echo来检索bloginfo。

bloginfo() documentation

3)您在底部拼错了 bloginfo ...

我的代码:

<h1 class="site-title">
   <a href="<?php echo esc_url(home_url('/')); ?>" rel="home">
      <?php $bloginfo('name'); ?>
   </a>
</h1>

<?php if (is_category('Ponies')) : ?>
    <img id="rainbow"
         src="<?php get_bloginfo('template_directory') . '/img/rainbow.png'; ?>"
         alt="OMG! Ponies!" />
<?php endif; ?>