ショートコードの中でそのままget_template_part関数などを使用して外部ファイルを読み込んだりすると、コンテンツ上部など意図しない場所に内容が出力されてしまいます。
これを防ぐためには、ショートコードで呼び出す関数の中で出力バッファリングを有効にしておかないといけません。
実際の書き方
function example_short_code() {
ob_start();
get_template_part('読み込みたいファイル');
return ob_get_clean();
}
add_shortcode('ショートコード', 'example_short_code');
ob_start()
で出力バッファリングを有効にしてからget_template_part()
を実行します。
最後に、ob_get_clean()
で現在のバッファの中身を取得してreturnします。
ob_get_clean()
は出力バッファの取得と削除を同時に行えるので便利です。
コメント