@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);
}
Testen Sie diese Funktion für PHP:
http://php.net/manual/en/function.ob-start.php
Sie können eine enthaltene Datei, die nur HTML-Code enthalten würde, in eine PHP-Variable puffern. Dadurch wird die Wartung sauberer.
Am Ende haben Sie also so etwas:
Dann können Sie $ includehtml einfach dort zurückgeben, wo Sie es benötigen, und es verhindert, dass Ihr HTML-Inhalt separat in PHP-Strings wiedergegeben werden muss.
quelle
Ich habe dieses Framework noch nicht verwendet, aber das angebotene Vorlagenmodell wird wahrscheinlich ansprechen. Vielleicht möchten Sie einen Blick darauf werfen, wie der Autor das eingerichtet hat.
https://github.com/Emerson/Sanity-Wordpress-Plugin-Framework
quelle
Das hängt von der Art von HTML und JS ab.
JavaScript
Trennen Sie zunächst die dynamischen Teile so weit wie möglich von den statischen Teilen. Laden Sie dann alle dynamischen Variablen, die Sie zur Laufzeit benötigen, und stellen Sie Ihre statischen Skripte in die Kopf- (oder Fußzeile, was auch immer). Auf diese Weise ist der Großteil Ihres JS von Ihrem PHP getrennt.
HTML
Dies ist eine Frage der sauberen Erstellung Ihres Codes in PHP. Wenn Sie große HTML-Teile haben, die Sie wiederverwenden möchten, würde ich diese als separate Variablen speichern. Das Zusammensetzen von Dingen beim Aufrufen des Shortcodes ist dann so einfach wie:
Anstatt zu versuchen, es prozedural aufzubauen, erstellen Sie ein Objekt (ja, PHP unterstützt Objekte), das alle Ihre verschiedenen HTML-Blöcke enthält, und weisen Sie es an, welche zu verwenden und welche Daten zurückzugeben sind. Dies spart Ihnen viel Zeit.
quelle