WP is_front_page并显示图像

时间:2014-12-10 22:30:06

标签: php wordpress if-statement

我正在开发一个新的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(&#39; template_directory&#39;)url,而不是将其插入到img src中,这就是我想要它做的事情。它试图在这个网址找到一个图像:localhost / images / logo-dsi.png

显然我在第5行的语法在某处是错误的,但我也不确定我是否以正确的方式解决这个问题。对于我想在这里完成的事情有没有更好的解决方案?

谢谢!

2 个答案:

答案 0 :(得分:1)

后者是正确的

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

应该是

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

答案 1 :(得分:0)

我尝试了这个并且它有效:

<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中的回声看起来很糟糕......; - )

此外,我确定有更好的方式来解决这个问题,但就目前而言,该代码可以解决问题。