@Byran M. Я, как правило, использую две конструкции, которые не часто встречают другие разработчики WordPress, что меня удивляет, но они мне очень нравятся.
1.) Heredocs
Вы можете хранить большие блоки текста в виде строки heredocs, которая может выглядеть следующим образом, поэтому я могу не беспокоиться о смешивании одинарных и двойных кавычек:
$html=<<<HTML
<input type="{$type}" size="{$size}" id="{$id}" class="{$class}" value="{$value}" />
HTML;
Обратите внимание, что переменные могут передаваться в функцию в виде массива, а затем extract()
редактироваться, или вы можете назначить их другими способами. Также обратите внимание, что я использую фигурные скобки не потому, что они всегда требуются, но они облегчают чтение кода. (Конечно, такие функции, как the_content()
существенное отличие от get_the_content()
WordPress, не всегда облегчают этот стиль кодирования.)
Более того, хотя это может не относиться к вам, если я использую имена heredoc, такие как HTML, SQL и т. Д., Тогда моя среда IDE PhpStorm выполняет инъекцию синтаксиса и дает мне автозаполнение и выделение синтаксиса внутри heredoc.
2.) Конкатенация строк с использованием массива
Другая идиома, которую мне нравится использовать, - это собирать содержимое в массив, а затем implode()
в массив. Несмотря на то, что я никогда не тестировал этот процесс, он может оказаться менее полезным, чем, я полагаю, я знаю, что повторная конкатенация строк является убийцей, поскольку строки становятся больше (если кто-то знает, почему этот подход не лучше, или если вы знаете лучший подход, я Буду рад услышать отзывы)
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);
}
Оформить заказ этой функции для PHP:
http://php.net/manual/en/function.ob-start.php
Вы можете буферизовать включенный файл, который будет содержать html-код, в переменную php. Это сделает его более чистым в обслуживании.
Таким образом, вы получите что-то вроде этого:
Затем вы можете просто вернуть $ includehtml там, где вам это нужно, и он не даст вашему html-контенту отразить все это в строках php.
источник
Я на самом деле не использовал эту платформу, но модель шаблона, которую она предлагает, вероятно, понравится. Возможно, вы захотите взглянуть на то, как автор настроил это.
https://github.com/Emerson/Sanity-Wordpress-Plugin-Framework
источник
Это зависит от типа HTML и JS.
JavaScript
Прежде всего, максимально отделяйте динамические части от статических. Затем загрузите все динамические переменные, которые вам нужны, во время выполнения и поставьте в очередь ваши статические сценарии в верхнем колонтитуле (или в любом нижнем колонтитуле) Но таким образом, большая часть вашего JS отделена от вашего PHP.
HTML
Это вопрос правильного построения кода в PHP. Если у вас есть огромные фрагменты HTML, которые вы собираетесь использовать повторно, я бы сохранил их как отдельные переменные. Затем сложить все вместе, когда вызывается шорткод, так же просто, как:
Вместо того, чтобы пытаться создать его процедурно, создайте объект (да, PHP поддерживает объекты), который содержит все ваши различные HTML-блоки, а затем укажите, какие из них использовать и какие данные передавать обратно. Это сэкономит вам огромное количество времени.
источник