目次
はじめに
先月末からブログのテーマをAffingerに変更しました。
中身を魔改造してしまいましたが、ほぼほぼAffingerの機能を保っています。
さて今回の本題ですが、AffingerはデフォルトでAMPのサポートをしています。
このAMPですが、有名なプラグインを使ったAMPとは違って、プラグインなどで設定したショートコードを無効化しています。
そのせいでSyntaxHighlighter EvolvedなどのソースがAMPになるとごっそり消えてしまいます。
なので、Affingerに用意された除外フィルターを使って、ショートコードの無効化を防ぎます。
フィルターの設定
下記をfunctions.phpに記述します。
function add_amp_allowed_shortcode_tags($allowed_shortcode_tags) { // [php],[shell],[css],[javascript],[html]のショートコードを削除から除外 array_push($allowed_shortcode_tags, 'php', 'shell', 'css', 'javascript', 'html'); return $allowed_shortcode_tags; } add_filter('st_amp_get_allowed_shortcode_tags', 'add_amp_allowed_shortcode_tags');
解説
st_amp_get_allowed_shortcode_tags
というフックが用意されているので、add_filter
で呼び出します。
add_filter('st_amp_get_allowed_shortcode_tags', 'add_amp_allowed_shortcode_tags');
引数$allowed_shortcode_tags
の配列に、AMPの時に削除されたく無いショートコード名を設定します。
上記の例は、array_push
というPHPの関数で、'php', 'shell', 'css', 'javascript', 'html'
を $allowed_shortcode_tags
の配列に追加しています。
array_push($allowed_shortcode_tags, 'php', 'shell', 'css', 'javascript', 'html');
設定後にreturnで $allowed_shortcode_tags
を返却します。
return $allowed_shortcode_tags;