@Byran M. Często używam dwóch konstruktów, z których często nie korzystają inni programiści WordPress, co mnie zaskakuje, ale bardzo je lubię.
1.) Heredocs
Możesz przechowywać duże bloki tekstu jako ciąg znaków heredocs, które mogą wyglądać tak, aby zapisać zmartwienie mieszania pojedynczych i podwójnych cudzysłowów:
$html=<<<HTML
<input type="{$type}" size="{$size}" id="{$id}" class="{$class}" value="{$value}" />
HTML;
Zauważ, że zmienne mogą być przekazywane do funkcji jako tablica, a następnie extract()
edytowane lub możesz przypisać je na inne sposoby. Zauważ też, że nie używam nawiasów klamrowych, ponieważ są one zawsze wymagane, ale ułatwiają czytanie kodu. (Oczywiście z funkcjami takimi jak the_content()
bycie istotnie innym niż get_the_content()
WordPress nie zawsze ułatwia ten styl kodowania.)
Co więcej, chociaż może to nie mieć znaczenia, jeśli użyję nazw heredoc, takich jak HTML, SQL itp., To mój IDE PhpStorm wykonuje wstrzykiwanie składni i daje mi autouzupełnianie i kolorowanie składni w heredoc.
2.) Łączenie łańcuchów za pomocą macierzy
Innym idiomem, którego lubię używać, jest zbieranie treści do tablicy, a następnie implode()
do tablicy. Chociaż nigdy tego nie analizowałem, więc może to być mniej pomocne niż zakładam, że wiem, że powtarzanie konkatenacji ciągów jest zabójcze, ponieważ ciągi stają się większe (jeśli ktoś wie, dlaczego to podejście nie jest lepsze lub jeśli znasz lepsze podejście I chciałbym usłyszeć opinie):
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);
}
Sprawdź tę funkcję dla PHP:
http://php.net/manual/en/function.ob-start.php
Możesz buforować dołączony plik, który po prostu zawierałby w nim kod HTML, do zmiennej php. Ułatwi to utrzymanie.
W efekcie powstaje coś takiego:
Następnie możesz po prostu zwrócić $ includedhtml tam, gdzie jest to potrzebne, dzięki czemu zawartość HTML nie będzie musiała być wyświetlana w ciągach php.
źródło
Tak naprawdę nie korzystałem z tego frameworka, ale oferowany przez niego model szablonów prawdopodobnie spodoba się. Możesz rzucić okiem na to, jak autor to skonfigurował.
https://github.com/Emerson/Sanity-Wordpress-Plugin-Framework
źródło
To zależy od typu HTML i JS.
JavaScript
Przede wszystkim oddzielić części dynamiczne od części statycznych tak bardzo, jak to możliwe. Następnie załaduj dowolne zmienne dynamiczne, których potrzebujesz w czasie wykonywania, i ustaw kolejkę skryptów statycznych w nagłówku (lub stopce, cokolwiek). Ale w ten sposób większość JS jest oddzielna od PHP.
HTML
Jest to kwestia czystego budowania kodu w PHP. Jeśli masz ogromne fragmenty kodu HTML, których zamierzasz użyć ponownie, zapisałbym je jako osobne zmienne. Następnie łączenie rzeczy, gdy wywoływany jest shortcode, jest tak proste, jak:
Zamiast próbować budować go proceduralnie, zbuduj obiekt (tak, PHP obsługuje obiekty), który zawiera wszystkie twoje różne bloki HTML, a następnie poinstruuj go, których użyć i które dane przekazać. Zaoszczędzi ci to mnóstwo czasu.
źródło