@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);
}