ショートコードの表示がページ上部にしか出てこないときの解決策

ショートコードの表示がページ上部にしか出てこないときの解決策

ショートコードで固定ページ内に表示しようとしたとき、記事の上部にしか出てこないときの解決策です。

下記のようなショートコードだとページ上部にしか表示できませんでした。

function shortcode_sample(){
 echo "ショートコードで表示する文字です。";
}

add_shortcode('sample','shortcode_sample');

作成した[sample]ショートコードを固定ページの一番下に記入しても表紙したページの一番上に文字が出てきてしまいます。

原因と解決策

原因は関数内でechoを使用していることでした。

echoで一部を出力していると、ショートコードがwp_contentのフィルターを通る時にショートコードを出力してしまう事が原因のようです。

HTMLのソースコードを変数を使用してreturnすることで解決できました。

function shortcode_sample(){
 $sample-text = "ショートコードで表示する文字です。";
 return $sample-text;
}

add_shortcode('sample','shortcode_sample');