3

「_images」フォルダーから画像をエコーし​​ようとしていますが、次のコードを記述した場合、それは私の Web サイト専用です。

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

これを次のように変更したので、他の誰かが私のテーマを使用すると、自分の Web サイト ディレクトリに移動します。

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 / エコーアウトしているため、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"

文字列に両方が含まれている場合、文字列区切り文字である方のみをエスケープする必要があります。つまり、次のようになります"'

'foo"bar\'foo'

また

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

2 番目のスタイルのコードを使用するには、最初に 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...

html をエコーし​​たい場合は、php コードのどこでも、php タグを閉じて、html を記述し、php タグを再度開きます。ただし、html と php をあまり混在させない方がよいでしょう。ファイルの先頭にすべての php コードを記述し、その後にすべての html を記述するようにしてください。PHP コードで動的な値を持つ変数を作成し、html 内に php コードを挿入して、属性またはタグ コンテンツ内にそれらを出力します。

于 2012-09-23T13:15:08.193 に答える