私はショートコードとして出力したいと思う長い形式のカップルを持っています。 ショートコードAPI はそれを示します
ショートコードが大量のHTMLを生成する場合は、ob_startを使用して出力を取得し、それを文字列に変換することができます。
これは 正確に 私の場合のようです。また、私はこのように私のHTMLの中でWordPressの機能を使いたいです。
function my_shortcode_register_form( $atts, $content = null ) {
ob_start();
?>
<div id="reg_form">
<h2><?php echo __('Login info', 'my-plugin-domain'); ?></h2>
<!-- and so on -->
</div>
<p><a href="<?php echo site_url( 'dashboard' ); ?>"><?php echo __('Go to Dashboard', 'my-plugin-domain'); ?></a>!</p>
<?php
$output_string = ob_get_contents();
ob_end_clean();
return $output_string;
}
add_shortcode('register_form', array( $this, 'my_shortcode_register_form' ));
うまくいきますが、ベストプラクティス、潜在的なバグ、そしてパフォーマンスに興味があります。このアプローチの欠点は何ですか?ひどくうまくいかないことがありますか?
私は少なくとも 一つの質問を見ました ここで警告はどうしても必要でない限り出力バッファリングを使うだけではありません。代わりにこれらのフォームをテンプレートに取り込むだけでいいのですか?
代わりにこれらのフォームをテンプレートに取り込むだけでいいのですか?
それはフォームに依存します、そしてあなたはあなたのフォームが何をするかについて多くの詳細を印刷していません。ショートコードはいいですが、すべての仕事に適したツールではありません。
私は...するだろう:
$_POST
や$_GET
のデータを扱わなければならない、あるいはヘッダの中にそのデータが存在するかどうかなどを調べなければならなくなり、それは面倒になります。さらに、ショートコードはオーバーヘッドであり、避けることができます。私は他の懸念があると確信していますが、それらは私に際立っているものです。