Recent Posts Widget Extended に AdSense のスクリプトを加える方法

Recent Posts Widget Extended に AdSense のスクリプトを加える方法

WordPress のプラグイン Recent Posts Widget Extended は非常に便利なのですが、その便利機能のひとつに、投稿リストメニューの上下に HTML コードを挟み込むことができる、というものがあります。

これにより投稿リストメニューの位置に広告などを表示させたりすることができるようになるわけです。

しかし、ここに、Google AdSense のインフィード広告を表示させようとすると。。。。

期待通りの動きをしません。

調べてみたところ、ここに <script> タグを書いても、プラグイン側でサニタイズ(無害化)されてしまい、<script> という文字列が出力されないことが判明しました。そりゃあスクリプトが動作しないわけです。

しかし今回どうしてもここに AdSense のインフィード広告を表示させたかったので、直接プラグインの PHP に手を加えてしまいました。しかしこれだとプラグインがバージョンアップした際に再度修正を加えなければならず、本当はもうちょっとスマートにやりたかったのですが、ひとまず実現を優先。

変更するファイル:

\wp-content\plugins\recent-posts-widget-extended\includes\functions.php

変更する箇所 :

オリジナルの構文はこうなっています

$html .= '</div><!-- Generated by http://wordpress.org/plugins/recent-posts-widget-extended/ -->';

上記を下記のように変更します(</DIV> の前にスクリプトを挿入)

$html .= '<ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="xxxxxxxxx" data-ad-client="ca-pub-xxxxxxxxxxx" data-ad-slot="xxxxxxxxx"></ins><script>(adsbygoogle = window.adsbygoogle || []).push({});</script></div><!-- Generated by http://wordpress.org/plugins/recent-posts-widget-extended/ -->';

これで投稿リストメニューに AdSense のインフィード広告を無事掲載できるようになりました。