2015-06-04 1 views
2

My Wordpress plugin создает несколько коротких кодов, которые возвращают блоки HTML.Что такое более чистый способ вывода HTML из плагина Wordpress?

Когда я зарегистрировать шорткоды, я делаю так, как это:

add_shortcode('bb-loans-form', function() { 
     return Shortcodes::loanApplicationForm(); 
    }); 

А вот статический метод из класса Шорткоды:

public static function loadApplicationForm() 
{ 
    $form = new \AdamWathan\Form\FormBuilder; 

    $html = $form->open()->action('/apply')->class('bb-loan-form'); 

    $html .= '<div class="bb-form-field">'; 
    $html .= '<h2>Loan Application Number</h2>'; 
    $html .= $form->text('loan_app_number')->id('loan-app-number'); 
    $html .= $form->submit('Continue Loan'); 
    $html .= '</div>'; 
    $html .= $form->close(); 

    return $html; 
} 

Это очень громоздки, и грязный. Мне не нравится вывод HTML-кода. Я также использовал Heredoc, но мне пришлось использовать замену строк, чтобы включить важные значения при визуализации формы.

Есть ли лучший способ для хранения моих файлов HTML? Я не хочу, чтобы эти файлы были общедоступными. Им придется жить в моем каталоге плагинов.

Это не огромный плагин, поэтому я не слишком обеспокоен, но я хотел бы узнать для справки в будущем, если есть более чистый способ включить необходимый HTML.

ответ

2

Вы можете использовать только одну строку с сцеплениями ...

$form = new \AdamWathan\Form\FormBuilder; 
$html = $form->open()->action('/apply')->class('bb-loan-form') . 
      '<div class="bb-form-field"> 
       <h2>Loan Application Number</h2>' . 
       $form->text('loan_app_number')->id('loan-app-number') . 
       $form->submit('Continue Loan') . 
      '</div>' . 
     $form->close(); 

return $html; 

Это, по крайней мере сохраняет HTML выровненного.

Я также не вижу проблемы с Heredoc, до тех пор, как вы назначаете переменные и подставить их в:

$form = new \AdamWathan\Form\FormBuilder; 

$form_start = $form->open()->action('/apply')->class('bb-loan-form'); 
$loan_app = $form->text('loan_app_number')->id('loan-app-number'); 
$submit = $form->submit('Continue Loan'); 
$form_end = $form->close(); 

$html = <<<HTML 
    {$form_start} 
     <div class="bb-form-field"> 
      <h2>Loan Application Number</h2> 
      {$loan_app} 
      {$submit} 
     </div> 
    {$form_end} 
HTML; 

return $html; 
+0

настоящее время я использую решение Heredoc в одном из сложных форм. Я новичок в разработке плагинов WP, поэтому я надеялся, что в ядре Wordpress будет какой-то слой, который занимается рендерингом представления/вывода. – Torra

Смежные вопросы