【THE THOR】広告タグの「border="0"」を一括で除去する方法(他テーマにも対応)

サイトをAMP対応させる時によく出るエラーのひとつが、A8.net等の広告タグに含まれる「img border="0"」というコードです。(AMPでは img に border を指定してはいけない決まりになっているため)
記事数が少ない場合は1つずつ削除していけば良いですが、記事数が多く個別に対応するのが難しい方のために、全てのAMPページから「border="0"」を一括で削除する方法をまとめておきます。(※「border="0"」だけでなく、border属性を全て除去します)

function.php にコピペする方法

こちらはテーマに関わらず利用できます。(全てのテーマで動作するとは限りませんのでご了承ください)

外観 > テーマの編集 > function.php

にコピペするだけですので、通常はこちらの方が楽だと思います。

必ずバックアップを取り、子テーマの方の「function.php」を編集してください。

function.php

add_action( 'pre_amp_render_post', 'xyz_amp_add_custom_actions' );
function xyz_amp_add_custom_actions() {
add_filter( 'the_content', 'my_amp_custom_main_content' );
}
function my_amp_custom_main_content ( $content ) {
$content = preg_replace(array(
'/border="[^"]*?"/iu', // borderを削除
), '', $content);
return $content;
}
参考記事

このブログは WordPress を使って管理されているのですが、昨今の Google のモバイル表示の猛プッシュとブロ…

THE THOR のテーマファイルを編集する方法

こちらの方法は、テーマ「THE THOR」を使用されている方専用となりますのでご注意ください。
「THE THOR」がAMP用の変換を行っている部分に他にも変更を加えたい方は、こちらを応用できると思います。

編集するファイル

wp-content themes the-thor inc amp convert.php

をダウンロード、または

WordPress > 外観 > テーマの編集 > THE THOR > inc amp convert.php

を新規ファイルにコピペして編集します。

編集する部分

54行目(ver.1.3.0)、「スクリプトを除去する」ためのコードの後に、以下をコピペします。

※新規ファイルを作った場合は「convert.php」という名前をつけて保存してください。

convert.php

	//border属性を除去する
	$the_content = preg_replace('/ +border=["][^"]*?["]/i', '', $the_content);
	$the_content = preg_replace('/ +border=[\'][^\']*?[\']/i', '', $the_content);

編集したファイルを子テーマにアップロードする

子テーマのフォルダ直下に「inc」というフォルダを作り(既に他のカスタマイズで作ってある場合はそのまま利用してください)、更にその中に「amp」という名前のフォルダを作ってください。
あとは編集した「convert.php」を「amp」内にアップロードするだけです。

アップロードする場所

wp-content themes the-thor-child inc amp convert.php

全てのAMPページから「border="0"」が除去されているはずですので、Chrome デベロッパーツールや AMP テストで確認してみてください。

Follow me ?