WordPressの公開ページに、問い合わせフォームや予約表ではなく、角括弧で囲まれたショートコードが文字のまま表示されることがあります。
この状態でショートコードを削除すると、本来表示するはずだった機能まで失われます。先に、コードを発行したプラグイン、設置場所、直前に行った更新を確認します。
編集画面で文字に見えるだけなら異常とは限らない
ショートコードは、編集画面では次のような文字列として表示されます。
[contact_form]
公開ページやプレビューでフォームなどに変換されていれば、問題はありません。
不具合を判断するときは、次の3か所を分けて確認します。
- WordPressの編集画面
- プレビュー画面
- 実際に公開されているページ
編集画面だけを見て修正を始めず、公開ページで文字列がそのまま出ているか確認します。
原因1:ショートコードを発行したプラグインが動いていない
問い合わせフォーム、予約カレンダー、商品一覧などのショートコードは、プラグインによって登録されていることがあります。
そのプラグインが停止、削除、エラーのいずれかで動かなくなると、WordPressがショートコードを認識できません。
確認する項目は次のとおりです。
- 対象プラグインがインストールされているか
- プラグインが有効になっているか
- 管理画面に警告やエラーが出ていないか
- 最近プラグインを削除していないか
- 同じプラグインで作ったほかの機能も止まっていないか
プラグインを再度有効にする前に、停止された理由も確認します。エラーや互換性の問題で自動停止している場合、すぐに戻すとサイト全体へ影響する可能性があります。
原因2:テーマ変更でショートコードの定義が消えた
独自のショートコードが、以前のテーマや子テーマ内に作られている場合があります。
テーマを変更すると、旧テーマに書かれていた処理は読み込まれません。その結果、記事内のショートコードだけが残ります。
次の状況なら、テーマとの関係を確認します。
- テーマ変更の直後から表示されなくなった
- 市販プラグインではなく、以前の制作者が作った機能である
- 旧テーマを有効にすると表示が戻る
- functions.phpや子テーマを編集した記録がある
旧テーマからコードをそのままコピーするのは避けます。現在のテーマで動くか、セキュリティ上の問題がないかを確認してから移します。
原因3:ショートコードの文字が変わっている
コピー時の欠落や書き換えでも認識されなくなります。
よくある違いは次のとおりです。
- 角括弧が片方ない
- ショートコード名の綴りが違う
- 属性を囲む引用符が別の記号になっている
- 開始側と終了側の名前が違う
- 不要な空白や改行が入っている
- 古いコードを別のプラグインへ貼っている
元のプラグインや設定画面にショートコードが表示されているなら、手入力せずにもう一度コピーします。
原因4:設置した場所でショートコードが処理されない
ショートコードは、貼り付ける場所によって処理方法が異なります。
投稿や固定ページでは動いても、次の場所ではそのまま表示されることがあります。
- テーマ独自の入力欄
- ヘッダーやフッターの設定欄
- HTMLとして出力するブロック
- ページビルダーのコード入力欄
- 独自テンプレート
- ウィジェットや再利用パーツ
まず、通常の固定ページにショートコードブロックを置き、同じコードが動くか確認します。
通常ページでは動き、特定の場所だけで文字になるなら、ショートコード自体より設置場所の問題です。
原因5:同じ名前のショートコードが重複している
独自プラグインやテーマが同じ名前のショートコードを登録していると、読み込まれる順番によって別の処理へ置き換わることがあります。
次のような場合は重複を疑います。
- 新しいプラグインを入れた直後に動かなくなった
- 同じ用途のプラグインが複数入っている
- 自作コードとプラグインの両方で同じ名前を使っている
- 一部のページでは動き、別の場所では予期しない表示になる
重複しているコード名を特定し、片方の名前を変更するか、不要な登録を解除します。
症状から確認範囲を絞る
| 症状 | 主に確認する範囲 |
|---|---|
| サイト全体で同じコードが文字になる | プラグイン、テーマ、独自コード |
| 1ページだけ文字になる | 綴り、引用符、設置ブロック |
| テーマ変更後に発生した | 旧テーマ、子テーマ内の定義 |
| 更新後に発生した | 更新したプラグインやテーマ |
| 特定の入力欄だけ動かない | その入力欄の出力方法 |
| 別の機能が表示される | ショートコード名の重複 |
最初からすべてのプラグインを停止する必要はありません。発生時期と影響範囲から、関係する部分を絞ります。
公開ページから一時的に隠す場合
問い合わせフォームや予約機能の代わりにコードが表示されていると、利用者が操作できません。
原因調査に時間がかかる場合は、対象部分を一時的に非表示にし、代替の連絡方法を載せます。
例:
- 電話番号
- メールアドレス
- 外部予約ページ
- 復旧中であることの案内
ショートコードを記事から完全に削除すると、復旧後に設置場所が分からなくなることがあります。元のコードと掲載ページは別に記録します。
修正前に保存する情報
作業前に次の情報を残します。
- 文字のまま表示されているページのURL
- 表示されているショートコードの全文
- 編集画面のスクリーンショット
- 本来表示される機能
- 最後に正常だった時期
- 直前に更新したテーマやプラグイン
- 現在使用しているテーマ名
- 関係しそうなプラグイン名
- 同じコードを使っているほかのページ
サイト全体をバックアップできる場合は、ファイルとデータベースの両方を保存してから作業します。
避けたい対処
原因が分からないまま次の操作を行うと、問題が広がることがあります。
- functions.phpへ未確認のコードを貼る
- 本番サイトでPHPを直接編集する
- すべてのプラグインを一度に停止する
- WordPressを古いバージョンへ戻す
- 同じショートコードを別名で作り直す
- 関係するページからコードをすべて削除する
特にfunctions.phpの記述ミスは、管理画面へ入れない状態につながります。独自コードを直す場合は、元へ戻せる環境を用意します。
ショートコード修正を依頼するときに伝える内容
修正を依頼する場合は、次の情報をまとめます。
- 対象ページのURL
- 表示されているショートコード
- 本来表示される内容
- 使用しているテーマ
- 関係するプラグイン
- 発生した時期
- 直前に行った更新や変更
- 影響しているページ数
- 管理画面と公開ページのスクリーンショット
- 一時的な代替表示が必要か
問い合わせフォーム、予約表、会員限定コンテンツなど、止まっている機能の種類も伝えます。原因調査と表示復旧だけを頼むのか、古い仕組みを別の方法へ置き換えるのかも分けておきます。
まとめ
WordPressのショートコードが文字のまま表示されたら、最初に公開ページでも同じ状態か確認します。
その後、ショートコードを発行したプラグイン、テーマ変更、コードの綴り、設置場所、名前の重複を順番に調べます。
ショートコードを削除するだけでは、本来の機能は戻りません。元のコードと掲載ページを保存し、何を表示するためのものだったかを確認してから修正します。

