サイトアイコン あみだがみねのもろもろ備忘録

[WordPress] ショートコードからの文字列出力位置がおかしい

ショートコード関数内で、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');

このページはAMPページです。
👉元のページ(非AMPページ)を表示する
👉あみだがみねのもろもろ備忘録 TOPへ
モバイルバージョンを終了