WP is_front_page和显示图像


WP is_front_page and displaying images

>我正在研究一个新的 WordPress 主题(自 2.8 以来就没有接触过 WP 主题......),我正在尝试做出一个 if/else 语句,根据页面是否是front_page来更改我的顶部导航栏的行为。

从本质上讲,我所追求的是,如果页面是front_page,则显示徽标图像。如果页面是任何其他类型的页面,则显示带有公司名称的简单 H1 元素:

<li class="name">
    <?php
        if (is_front_page()) {
            echo '<a href="<?php bloginfo("url"); ?>';
            echo '<img src="' .bloginfo( "template_directory" ). '/images/logo-dsi.png" alt="DSI" />';
            echo '</a>';
        } else {
            echo '<a href="' .home_url(). '">';
            echo '<h1 class="logo">DSI</h1>';
            echo '</a>';
        }
    ?>
</li>

else 语句工作正常。但是我的 if 语句没有正确生成 img 标签。它回显了文字 bloginfo('template_directory') url,而不是将其插入 img src,这就是我希望它做的事情。它试图在这个网址上找到一个图像:localhost/images/logo-dsi.png

显然,我在第 5 行的语法在某处是错误的,但我也不确定我是否以正确的方式做到这一点。对于我在这里要完成的任务,有没有更好的解决方案?

谢谢!

然而后者是正确的

echo '<a href="<?php bloginfo("url"); ?>';

应该是

echo '<a href="' . bloginfo("url") . '">';

我试过了这个,它奏效了:

<li class="name">
    <a href="<?php bloginfo('url'); ?>">
        <?php
            if (is_front_page()) { ?>
                <img src="<?php bloginfo('template_directory'); ?>/images/logo-dsi.png" alt="DSI" />
            <?php
            } else { ?>
                <h1 class="logo">DSI</h1>
            <?php } ?>
    </a>
</li>

抱歉,我应该再黑一会儿。但也许这会对其他人有所帮助。

我知道WordPress中的回声看起来很糟糕是有原因的... ;-)

另外,我确信有一种更漂亮的方法来写出来,但是就目前而言,该代码可以解决问题。