【问题标题】:PHP concat operator will move the content to the beginningPHP concat 运算符会将内容移到开头
【发布时间】:2021-09-29 22:34:32
【问题描述】:

我在WordPress中写了一个PHP代码sn-p,如下:

            <td><?php echo '<!-- 2021-09-29: Replace Font Awesome tag <i class="fas fa-cloud-download-alt"></i> with the SVG sprite, to improve performance. -->
            <svg class="my-svg-inline--fa my-fa-w-20">
                <use href="' . bloginfo('template_directory') . '/images/icons/icons.svg#cloud-download-alt"/>
            </svg><a download-link="'.site_url( '/' ).$post->post_name.'-download-thanks" href="'.$link_url.'" class="download-url"> Download</a>' ?></td>

我希望 bloginfo('template_directory') 会被插入到 href 中,如下所示:

<td><svg class="my-svg-inline--fa my-fa-w-20">
                <use href="https://www.example.com/wp-content/themes/mytheme/images/icons/icons.svg#cloud-download-alt"/>
            </svg><a download-link="xxx" href="xxx" class="download-url"> Download</a></td>

但实际输出是:

<td>https://www.example.com/wp-content/themes/mytheme
            <svg class="my-svg-inline--fa my-fa-w-20">
                <use href="/images/icons/icons.svg#cloud-download-alt"/>
            </svg><a download-link="xxx" href="xxx" class="download-url"> Download</a></td>

bloginfo('template_directory')生成的路径放在PHP echo生成的字符串之前,为什么?

更新

很抱歉错过了函数bloginfo 的相关信息。我会尝试get_bloginfo 并更新这篇文章。

【问题讨论】:

  • 我的猜测是 bloginfo() 正在回显它的结果而不是返回它。
  • 我同意@Barman,有一个专门的函数来获取值:developer.wordpress.org/reference/functions/get_bloginfo
  • @Philippe,非常感谢。使用get_bloginfo后,问题解决了。
  • 读起来很高兴 :) 编码愉快!

标签: php


【解决方案1】:

听起来bloginfo() 没有返回任何东西,它正在做自己的回声。这发生在函数返回之前,因此它在调用者连接结果并打印其结果字符串之前被打印。

要么更改bloginfo() 以返回字符串而不是打印它,要么不使用连接。打印第一部分,然后调用bloginfo(),然后打印第二部分。

<td><?php echo '<!-- 2021-09-29: Replace Font Awesome tag <i class="fas fa-cloud-download-alt"></i> with the SVG sprite, to improve performance. -->
<svg class="my-svg-inline--fa my-fa-w-20">
    <use href="';
bloginfo('template_directory');
echo '/images/icons/icons.svg#cloud-download-alt"/>
</svg><a download-link="'.site_url( '/' ).$post->post_name.'-download-thanks" href="'.$link_url.'" class="download-url"> Download</a>' ?></td>

【讨论】:

  • 非常感谢。虽然最后我使用 get_bloginfo 函数来解决这个问题,但我相信你的实现也可以。
  • bloginfo() 只是一个函数,可以执行 echo get_bloginfo() 吗?
  • 是的,我想是的,这个功能是WordPress提供的,不知道能不能看到实现的源码。 developer.wordpress.org/reference/functions/bloginfo
猜你喜欢
  • 1970-01-01
  • 2013-08-09
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2016-04-17
相关资源
最近更新 更多