WordPress中bloginfo拼接路径出现在echo输出开头是什么原因
问题原因
WordPress 的 bloginfo() 函数本身是直接输出内容的,不会把值返回给你做字符串拼接。你把它放在 echo 的字符串拼接逻辑里时,PHP 会先执行 bloginfo() 把主题路径直接打印出来,再跑后面的拼接和 echo 逻辑,所以路径就跑到了所有输出内容的最前面,没法正常拼到 href 属性里。
解决方法
把代码里的 bloginfo('template_directory') 换成 get_bloginfo('template_directory') 就行,这个函数是把主题路径作为返回值返回的,支持正常的字符串拼接:
<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="' . get_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>
你也可以用 WordPress 更推荐的 get_template_directory_uri() 函数获取主题目录 URI,效果完全相同。
内容的提问来源于stack exchange,提问作者alancc
相关产品推荐
相关产品推荐

