ショートコードの表示がページ上部にしか出てこないときの解決策
ショートコードで固定ページ内に表示しようとしたとき、記事の上部にしか出てこないときの解決策です。
下記のようなショートコードだとページ上部にしか表示できませんでした。
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');