我在PHP / HTML页面的for循环的每次迭代开始时生成一些URL,如下所示:
if ($chart_track->positionchange == 0) {
$position_change_image = bloginfo('template_directory') . "/images/equal.png";
}
else if ($chart_track->positionchange > 0) {
$position_change_image = bloginfo('template_directory') . "/images/up.png";
}
else {
$position_change_image = bloginfo('template_directory') . "/images/down.png";
}
然后我将$ position_change_image回显到img标签的src属性中,如下所示:
<img src="<?php echo $position_change_image; ?>" class="position-image">
这会创建一个断开的链接并以纯文本形式输出URL的基础(template_directory部分)。在检查img src时,它只有最后一部分,即/images/up.png。我尝试在esc_url函数中包装$ position_change_image,但这也不起作用。当我在其他地方回显$ position_change_image的实际值时,它就是完整的URL。为什么以上帝的名义被分解并输出这样的?
答案 0 :(得分:2)
那是因为你正在调用echo两次因为bloginfo
自动回声!
而是使用get_bloginfo
。
Bloginfo Docs:
显示有关您网站的信息,主要是从网站收集的 您在用户档案和常规设置中提供的信息 WordPress管理屏幕。它可以在任何地方使用 模板文件。这总是会将结果打印到浏览器。如果你需要 要在PHP中使用的值,请使用get_bloginfo()。