[WordPress] 通常ページとAMPページで表示内容を切り替えるショートコード

通常ページとAMPページで表示する内容を切り替えるためのショートコードの実装方法です。

AMP対応広告の出し分けをするために作成しました。

通常広告はテキストリンクにしたけど、AMPはバナーしか対応しておらず、前後の説明テキストを含めて切り替える必要があったからです。

WordPressのfunctions.phpに記載して使用します。

AMPページの判別方法は「Simplicity2」および「Cocoon」というテーマに合わせて作成していますので、AMPの実装方法によっては、修正が必要になります。

【追記】
本ショートコード内にショートコードを設定した場合に展開できない問題があったので、展開できるように2箇所の追加・修正をしました。

表示する内容を切り替えるショートコード

説明

通常ページだけに表示したい内容は、

AMPページだけに表示したい内容は、

のようにショートコードで囲むように投稿本文に記載して使用します。

「AMP判別関数」の判別方法が、「Simplicity2」および「Cocoon」というテーマに合わせて作成してありますので、AMPの実装方法によっては修正が必要になります。

「指定したショートコード内のbrタグを空白に置換」の関数は、ショートコード内に書かれた文字列に改行が含まれていると自動で挿入されてしまうbrタグを削除するためのものです。

広告タグの改変をなるべくしない為の処理となりますが、ショートコード内のすべての改行が削除されるので、必要ない場合はここだけ削除してください。

【追記】
追加箇所 1および 2の「文字列に含まれているショートコードを展開する」の部分で、処理対象の文字列としてショートコードが渡された場合にも、再帰的に展開します。

タイトルとURLをコピーしました