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

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

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

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

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');
Share on Twitter
関連記事
is_page() やis_single() で複数ページを指定する方法
is_page() やis_single() で複数ページを指定する方法
All In One WP Security & FirewallでWordPressのセキュリティを強化する方法
All In One WP Security & FirewallでWordPressのセキュリティを強化する方法
ACFで作成したカスタムフィールドを検索対象に含めるプラグインACF: Better Searchの使い方
ACFで作成したカスタムフィールドを検索対象に含めるプラグインACF: Better Searchの使い方