WordPressで構築したサイトで、古くなって使わなくなってしまったプラグインなどを削除すると、そのプラグインで使用していたショートコードがそのまま投稿内に残ってしまいます。
よくある例としてはテーブルなどの表やコンタクトフォームなどの入力フォーム、コンテンツの目次、広告やアフィリエイトタグなどの自動出力、テンプレートの定型文などを簡単なショートコードで実現できるようなもの。
これらのWordPressプラグインは、導入して利用している間は効率よくコンテンツを作ることができて便利なのですが、のちのちプラグインの更新が止まってしまい最新バージョンのWordPressに対応しなくなったり、またより機能的なプラグインを導入することなどにより使わなくなってしまったときに、コンテンツに大量のショートコードの記述がサイト内に残ったままになってしまいます。
ショートコードを使用するWordPressプラグインを無効化/削除するとどうなるのか
ショートコードを使用するWordPressプラグインを無効化もしくは削除すると、コンテンツに記述されたショートコードはそのままテキストとして表示されてしまいます。
WordPressの編集ブロックには「ショートコード」というショートコード入力専用のブロックもありますが、このブロックも特にショートコードの動作を判定しているわけではなく、ショートコードが正しく見つからない場合はそのままショートコードの内容が表示されてしまいます。
エントリの記述にショートコードを大量に使用していた場合、もしそのショートコードを利用するプラグインが不要になってしまうと、過去記事の大量修正作業などが発生するリスクがあります。
とはいえ、ショートコードが必要なくなる未来だけを心配してプラグインを使わないわけにもいかないと思います。また、古くなってバージョンアップが止まってしまったプラグインをショートコードの表示のためだけに残しておくという対応もセキュリティの面やWordPress自体の正常稼働の観点からも良くありません。
WordPressで使わなくなったショートコードを動作させず、表示もさせないようにするカスタマイズ
これらの対処方法として「ショートコード自体を非表示にする」方法がひとつの対処方法となります。
ショートコードの記述があった場合に非表示にするような処理を行うことで、とりあえずは過去に書き溜められてしまったショートコードを画面上に表示しないようにすることができます。
記述したショートコード自体を削除するわけではないので応急処置的な対応ではありますが、WordPressサイトの配下全体に適用ができるので、そのショートコードを使用する予定がない限りは有効な処置になります。
WordPressカスタマイズ作業手順
以下の内容を functions.php に追記します。
// ショートコードを無効にする
function shortcodes_disabled() { return; }
add_shortcode('ショートコード1', 'shortcodes_disabled');
add_shortcode('ショートコード2', 'shortcodes_disabled');
上記の「ショートコード1」の内容を無効化したいショートコード名に置き換えて記述してください。
またこの例では「ショートコード1」「ショートコード2」の2つのショートコードを無効にする記述になっています。無効にするショートコードがひとつだけの場合は4行目を削除し、また、3つ以上のショートコードを無効にする場合は3行目をコピー&貼り付けして数を増やすことで対応できます。
この関数自体は「何も処理をしない」という内容になっているので、結果も何も表示されません。そのため該当するショートコードは記事内に記述されていても公開ページには表示されないようになります。
コメント