@Byran M. Ich neige dazu, zwei Konstrukte zu verwenden, die andere WordPress-Entwickler nicht oft verwenden, was mich überrascht, aber ich mag sie sehr.
1.) Heredocs
Sie können große Textblöcke als Heredocs- Zeichenfolge speichern , die möglicherweise so aussieht, damit ich mir Gedanken über das Mischen von einfachen und doppelten Anführungszeichen machen kann:
$html=<<<HTML
<input type="{$type}" size="{$size}" id="{$id}" class="{$class}" value="{$value}" />
HTML;
Beachten Sie, dass die Variablen möglicherweise als Array an eine Funktion übergeben und dann extract()
bearbeitet werden oder dass Sie sie auf andere Weise zuweisen können. Beachten Sie auch, dass ich die geschweiften Klammern nicht benutze, weil sie immer benötigt werden, sondern weil sie den Code leichter lesbar machen. (Natürlich macht es diese Art der Codierung nicht einfach, the_content()
wenn Funktionen wie get_the_content()
WordPress wesentlich anders sind als WordPress.)
Was mehr ist, obwohl es für Sie möglicherweise nicht relevant ist, wenn ich Heredoc-Namen wie HTML, SQL usw. verwende, führt mein IDE PhpStorm eine Syntaxinjektion durch und gibt mir Autocomplete und Syntaxfärbung innerhalb des Heredoc.
2.) String-Verkettung mit einem Array
Die andere Redewendung, die ich gerne verwende, ist das Sammeln des Inhalts in einem Array und dann implode()
im Array. Obwohl ich dies noch nie verglichen habe, könnte es weniger hilfreich sein, als ich annehme, dass ich weiß, dass wiederholte Verkettung von Zeichenfolgen ein Killer ist, wenn Zeichenfolgen größer werden (wenn jemand weiß, warum dieser Ansatz nicht besser ist oder wenn Sie einen besseren Ansatz kennen, den ich würde gerne Feedback hören):
function my_get_form_and_fields($input_items) {
$html = array();
$html[] = '<form name="my_form" method="get">';
foreach($input_items as $input_item) {
extract($input_item);
$html=<<<HTML
<input type="{$type}" size="{$size}" id="{$id}" class="{$class}" value="{$value}" />
HTML;
$html[] = '</form>';
return implode("\n",$html);
}