WordPress

AffingerのAMPモードでショートタグが削除されてしまうのを防ぐ方法

はじめに

先月末からブログのテーマを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で呼び出します。
引数$allowed_shortcode_tags の配列に削除されたく無いショートコード名を設定します。

設定後にreturnで返却します。

 

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-WordPress
-, ,