WordPressでショートコードがそのまま表示される原因と対処法

WordPressでショートコードがそのまま表示される原因と対処法を、次の3つのケースに分けて解説していきます。

  1. 一般的なケース
  2. 投稿ページ・固定ページ
  3. テンプレートファイル

一般的なケース

原因①:ショートコードが登録・定義されていない

そもそも使おうとしているショートコードが登録・定義されていない場合です。

対処法

ショートコードの登録方法に従い、登録を行いましょう。

特にadd_shortcode()で呼び出している関数と、定義した関数が同じになっているかしっかりと確認しましょう。

Check
下記のショートコードでいうと、foo_func()のことです。
//[foo]
function foo_func( $atts ){
	return "foo";
}
add_shortcode( 'foobar', 'foo_func' );
注意
テーマによっては、独自にショートコードを定義している場合があります。そのため、テーマ変更を行うと、以前利用できていたショートコードが利用できなくなるケースがあります。

原因②:ショートコードが削除・抹消されている

ショートコードの登録はされているけど、その後の記述でショートコードが削除・抹消されている場合です。

ショートコードの削除は、以下の関数で行えます。

  • function remove_shortcode( $tag )
  • function remove_all_shortcodes()

対処法

ファイル検索などを行い、該当のショートコードを削除している関数があれば、関数の削除を行いましょう。

注意
テーマやプラグインをアップデートしたことにより、以前のバージョンではあったショートコードが削除されている場合もあります。

原因③:ショートコードのタグの記載が間違っている

ショートコードは指定の方法で記述をしないと実行されません。正しく記述されているか確認をしましょう。

対処法

タグを正しく記載しましょう。

タグの確認を行う際には、次のポイントに注意してください。

  • 全角になっていないか。半角で記載を行う
  • 紛らわしい数字と英語を間違っていないか

原因④:入れ子になっている

デフォルトの設定では、入れ子のショートコードはそのまま表示されてしまいます。

対処法

呼び出し元のショートコードの関数の$contentdo_shortcode()関数を実行しましょう。

詳しくは次の記事で解説しています。

あわせて読みたい
WordPressでショートコードを入れ子にして実行する方法 WordPressのショートコードの中で、ショートコードを記述しても、内部にあるショートコードは実行されずそのまま表示される場合があります。 エディターで次のような記...

原因⑤:ショートコードが閉じていない

複数の囲み型ショートコードの記載がある場合に、前のショートコードが閉じられていないと、後ろのショートコードがそのまま表示されてしまうケースがあります。

対処法

囲み型ショートコードを使う場合は、しっかりと閉じましょう。

投稿ページ・固定ページ

大半は、一般的なケースで解説した原因によるものです。

テンプレートファイル

テンプレートファイルなどのPHPファイル内では、ショートコードをそのまま表示するようになっています。

PHPファイル内でショートコードを実行する場合は、echo関数とdo_shortcode()関数を利用する必要があります。

<?php echo do_shortcode('[myshortcode]'); ?>

詳しくは、次の記事で解説しています。

あわせて読みたい
【WordPress】ショートコードをPHPファイルで実行する方法 WordPressのテンプレートファイルなどのPHP形式のファイルでショートコードを実行するには、do_shortcode()関数とecho関数を使用します。 以下のコードが、ショートコー...
よかったらシェアしてね!
  • URLをコピーしました!