web-dev-qa-db-ja.com

内部に変数を持つ文字列をショートコードで返すにはどうすればいいですか?

$output = '<p class="one"><small>'.$newsletter_one. '</small></p>'

一般的に、短いコードを書くときには上記のようなHTMLを発行します。そしてechoの代わりにreturn関数を使います。

これをどう書くか→

<span class="class2" id="class3-<?php echo $random;?>"> </span>

こんな→

$output = '<span class="class2" id="class3-.$random."> </span>'

それともいくつかの欠陥がありますか?

1
The WP Novice

データを文字列と組み合わせて返す場合は、次のいずれかの方法を使用できます。

'を使用して文字列を開閉します。

return '<span class="class2" id="class3-' . $random . '"> </span>';

または二重引用符を使用します。

return "<span class='class2' id='class3-{$random}'> </span>";

$random中括弧なしで単に{}を使用することができますが、{}を使用すると読みやすくなります。

内側の文字列に二重引用符を使うこともできますが、それらをエスケープする必要があります。

return "<span class=\"class2\" id=\"class3-{$random}\"> </span>";

@birgireによるコメントで指摘されているように、もっとWordPressyにするために、変数をエスケープすることもできます。

return sprintf( '<span class="class2" id="class3-%s"></span>', esc_attr( $random ) );
4
Jack Johansson

Jack Johanssonの答えに加えて(私はそれにコメントを加えるつもりですが、私自身の答えを投稿するよりもそれを行うにはもう少しここにいる必要があるようです!)内部二重引用符さえ必要ないと思います。 AFAICT(私は比較的最近のPHPプログラマです)、あなただけ書くことができます

return "<span class='class2' id='class3-{$random}'> </span>";

そしてそれは同様にうまくいくでしょう。

1
Richard Bos