ショートコード関数内で、echoやprintやincludeなどで直接文字列を出力すると、
文字列があさっての場所に表示されることがあります。
その場合はバッファリングしておいて、最後にreturnするとキチンと表示されるようになります。
(ショートコードの使い方はこちら 👉 [WordPress] 投稿記事中でPHPコード実行 (Exec-PHPでエラー))
文字列バッファリングには、”ob_start()”関数と”ob_get_clean()”関数を使います。
// functions.php
function printHello() {
// バッファリング開始
ob_start();
echo "Hello, Shortcode!";
// バッファリング出力
return ob_get_clean();
}
add_shortcode('hello', 'printHello');