3

我正在尝试从我的“_images”文件夹中回显图像,但如果我编写以下代码,它仅适用于我的网站:

echo '<img src="http://mywebsite.com/mytheme/wp-content/themes/my theme/_images/project3image1.jpg">';

我已经把它改成了这样,所以当其他人使用我的主题时,它会将他们带到他们自己的网站目录:

echo '<img src="<?php bloginfo('stylesheet_directory'); ?>/_images/project3image1.jpg">'; 

但是,当我放置并预览我的网站时,这段代码一定有问题,它给了我这个错误:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/content/32/9825632/html/bomb/wp-content/themes/bomb/header.php on line 101

我是一个 php 菜鸟,所以这可能是一个明显的错误!

4

3 回答 3

5

您已经在 php / echoing 中,因此您不需要使用 php 标签:

echo '<img src="' . bloginfo('stylesheet_directory') . '/_images/project3image1.jpg">';
于 2012-09-23T12:48:12.127 回答
4

不要将标记与代码混合。你在自找麻烦,这一切都失去了可读性。像这样使用printf

printf( '<img src="%s/_images/project3image1.jpg">', bloginfo('stylesheet_directory'));

但你真正的问题是嵌套引号。如果您使用'分隔字符串边界,例如:

'foo'

那么如果字符串内容也包含'

'foo'bar'

它必须像这样逃脱:

'foo\'bar'

否则,您的内容引号将被视为字符串的右引号。或者您可以"改用:

"foo'bar"

但同样 - 如果您的字符串内容包含",则必须对其进行转义:

"foo\"bar"

如果 string 包含两者"'那么您只需要转义作为字符串分隔符的那个,即:

'foo"bar\'foo'

或者

"foo'bar\"foo"
于 2012-09-23T12:49:52.937 回答
0

要使用第二种风格的代码,您必须首先关闭 php 标签:

    //...your php code before echoing the img

    //here you close the tag 
    ?>

    <img src="<?=bloginfo('stylesheet_directory')?>/_images/project3image1.jpg" />

    <?php //here you open it again

    //your rest php code...

如果您想在您的 php 代码中的任何位置回显一些 html,只需关闭 php 标签,编写您的 html 并再次打开 php 标签。但最好不要大量混合html和php。尝试在文件开头编写所有 php 代码,然后编写所有 html。在您的 php 代码中使用动态值创建变量,并在 html 中注入 php 代码以将它们输出到任何属性或标记内容中。

于 2012-09-23T13:15:08.193 回答