2013
03.27

Quick Adsense プラグインの文字化け対策

IT・家電

 僕のサイトはWordPressで作っています。でもって、横とか記事の中に広告が入ってきてるでしょう。じゃまだったら、ごめんなさいね。これで少しは生活の足しになればと頑張っております。が、なかなかねえ〜。あ〜そんなことが書きたいのでは無くて、今回はその広告用のプラグイン「Quick Adsense」についての話。実はこのプラグイン、好きな場所に広告を自動的に貼れるので、とても便利なんだけれどスクリプトの中に日本語文字があると文字化けして、設定も表示も出来ないんですよ。

88337724

 でもって、設定時にうまくいったと思って、そのままにしておくと、日本語文字を含むスクリプトの下に別の広告の設定をしようと思っても、あれ?って感じで出来ないのですよ。

 例えば、下のような広告を表示するには


 下のようなスクリプトをはめ込みます。

<script type=”text/javascript”>var a8=’a13021774540_25J0FS_BQ4COI_2HOM_BUB81′;var rankParam=’r_vs2BetLQVCh4J2L7VMOcVpTQVpH0e82_H02OV5Cy1rEy-Jv’;var bannerType=’0′;var bannerKind=’item.fix.kind6′;var frame=’1′;var ranking=’1′;var category=’パソコン・周辺機器’;</script><script type=”text/javascript” src=”http://rws.a8.net/rakuten/ranking.js”></script>

 上記の中に、「パソコン・周辺機器」と言った日本語が入っているでしょう。こういうのが入っていると、設定がぐちゃぐちゃになっていき、最後には見ているブラウザがこの文字化けのスクリプトのせいで、ハングアップしたような状態になってしまいます。

 原因を探ったところ、日本語の文字を使うことがあるにもかかわらず、プラグインのコード内に、それが考慮されていませんでした。具体的には、「quick_adsense_admin.php」内を以下のように修正します。バージョンが異なると、行番号が異なるので、シンタックスを追って下さい。

<?php for ($i=1;$i<=$QData['Ads'];$i++) {
//      $cod = htmlentities(get_option('AdsCode'.$i));
        $cod = htmlentities(get_option('AdsCode'.$i), ENT_QUOTES, 'UTF-8');
        $agn = get_option('AdsAlign'.$i);
        $mar = get_option('AdsMargin'.$i);
        $optionsupdate .= ',AdsCode'.$i.',AdsAlign'.$i.',AdsMargin'.$i;
?> 

 もう一カ所

<?php for ($i=1;$i<=$QData['AdsWid'];$i++) {
//      $cod = htmlentities(get_option('WidCode'.$i));
        $cod = htmlentities(get_option('WidCode'.$i), ENT_QUOTES, 'UTF-8');
        $optionsupdate .= ',WidCode'.$i;
?>

 上記を修正すれば、OKとなります。これで、安心して使えるようになりました。一応、作者さんにも修正をお願いしてみたけれど、新しいバージョンでどうなるかは、わかりませぬ。

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。