0

我在 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。我尝试将 $position_change_image 包装在 esc_url 函数中,但这也不起作用。当我在别处回显 $position_change_image 的实际值时,它就是完整的 URL。为什么以上帝的名义,它会像这样被分解和输出?

4

1 回答 1

2

那是因为您两次调用 echo 因为会bloginfo自动回显!

而是使用get_bloginfo.

Bloginfo Docs:

显示有关您网站的信息,这些信息主要来自您在用户配置文件和常规设置 WordPress 管理屏幕中提供的信息。它可以在模板文件中的任何地方使用。这总是将结果打印到浏览器。如果您需要在 PHP 中使用的值,请使用 get_bloginfo()。

于 2013-11-07T21:43:11.543 回答