我的Wordpress插件会创建一些返回HTML块的短代码。
当我注册短代码时,我这样做:
add_shortcode('bb-loans-form', function() {
return Shortcodes::loanApplicationForm();
});
这是Shortcodes类的静态方法:
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,我想知道将来参考。< / p>
答案 0 :(得分:2)
您可以只使用带有连接的单个字符串...
@include layout(8) {
.foo { @include grid-span(5, 1); }
.bar { @include grid-span(1, 6); }
.baz { @include grid-span(2, 7); }
}
至少保持HTML一致。
我也不会真正看到Heredoc的问题,只要您分配变量并将其替换为:
$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;