在echo中使用Wordpress方法 - 似乎无法正常工作?

时间:2010-09-21 12:51:46

标签: php wordpress

甚至不确定方法是否是正确的术语......

这是原始的工作代码:

<a href="<?php bloginfo('url'); ?>">
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/logo.png" alt="Polished Logo" id="logo"/></a>
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
<p id="logo_title"><?php bloginfo('description'); ?></p>

我希望它只在主页上执行,所以我写了这个:

<? 
if ( $_SERVER["REQUEST_URI"] == '/' ){
echo '<a href="'.bloginfo('url').'">
<img src="'.bloginfo('stylesheet_directory').'/images/logo.png" alt="Polished Logo" id="logo"/></a>
<img src="'.bloginfo('stylesheet_directory').'/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
<p id="logo_title">'.bloginfo('description').'</p>';
}
?>

但它输出bloginfo()和其他声明完全超出我创建的html标签。例如,对于bloginfo('stylesheet_directory'),它将显示我创建的IMG标记之外的目录。

有什么想法吗?显然我的语法不正确或者......

3 个答案:

答案 0 :(得分:11)

bloginfo函数直接回显输出。在这种情况下,您应该使用get_bloginfo将返回的值添加到字符串中并回显完整的字符串。我相信这会起作用

<?php
if ( $_SERVER["REQUEST_URI"] == '/' ) {
  echo '<a href="'.get_bloginfo('url').'">
    <img src="'.get_bloginfo('stylesheet_directory').'/images/logo.png" alt="Polished Logo" id="logo"/></a>
    <img src="'.get_bloginfo('stylesheet_directory').'/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
    <p id="logo_title">'.get_bloginfo('description').'</p>';
}
?>

这是一个更好的选择:

<?php if ( $_SERVER["REQUEST_URI"] == '/' ) { ?>
<a href="<?php bloginfo('url') ?>">
  <img src="<?php bloginfo('stylesheet_directory') ?>/images/logo.png" alt="Polished Logo" id="logo"/>
</a>
<img src="<?php bloginfo('stylesheet_directory') ?>/images/separator.png" width="2" height="59" alt="Line" class="logo_line"/>
<p id="logo_title"><?php bloginfo('description') ?></p>
<?php } ?>

我还建议使用wordpress提供的is_home()功能来检查主页,而不是检查$_SERVER['REQUEST_URI']值。

答案 1 :(得分:0)

bloginfo()使用echo输出数据并且不返回任何内容,因此不是尝试连接所有内容,而是按顺序输出,例如

echo '<a href="';
bloginfo('url');
echo '"><img src="';
bloginfo('stylesheet_directory');
//etc...

丑陋我知道,但看看Nithesh的回答可能是另一种选择。

答案 2 :(得分:0)

如果您想获取模板路径而不通过bloginfo()函数自动回显它,请使用:

get_bloginfo( 'stylesheet_directory', 'display' )