我正在试图回复我的'_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菜鸟,所以这可能是一个明显的错误!
答案 0 :(得分:5)
你已经在php / echo out了,所以你不需要使用php标签:
echo '<img src="' . bloginfo('stylesheet_directory') . '/_images/project3image1.jpg">';
答案 1 :(得分: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"
答案 2 :(得分: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代码,以在任何属性或标记内容中输出它们。