今回は別ブログの空き箱。の話なのですが、空き箱。では、WordPressのテーマでCocoon(コクーン)を使用しています。
このCocoonというテーマ。とても高性能で使い勝手がものすごく良いのですが、実はアドセンスの広告を自動挿入でウィジットに追加していると、記事プレビュー中に何故かその広告だけ表示された状態になってしまうのです。
一応、このことは別の方も制作者の方に相談されており、表示されていても問題は無いとご回答を頂いているようですが…………
アドセンス側で対処してね!って警告を貰ってしまいました。
それをなんとかしたくて色々探してみたのですが、どうやって対応すればいいのか分からなくなってしまったのですよね。
結果としては、ウィジット部分だけプラグインに切り替えて、分岐タグでプレビューは非表示にすると指示を出すことで解決したのですが、とりあえず今回はその話でも。
記事を作成する時、内容は確認したい! だからプレビューするんだけど……
自分は、ブログ記事を書くときは結構、編集画面に直接打ち込みで作業をすることが多いです。
その為、記事の内容を定期的にプレビュー表示をして確認してしまうのですが、この時アドセンスの広告が表示されてしまうと、アドセンス側のクロールエラーが出てしまい、場合によっては警告やお叱りを。最悪のパターンだと広告の停止処置を喰らうかも知れないという事で、猫壁の方では、プレビュー時の広告は一切表示させない設定をしています。(因みにログイン状態の場合は、広告表示エラーを確認出来なくなってしまうので、普通に広告は表示させています。)
そのときの記事はコチラを。
猫壁はその設定をしているのに何故空き箱。ではやらなかったのかというと、実は使用しているテーマの違いのためです。
猫壁の場合、海外産の無料テーマを使用しているため、欲しい機能、要らない設定などは自力で調べて色々カスタマイズしているのですが、空き箱。は作業のやりやすさを考えて、高性能の国産テーマを使っています。
ところが……このテーマ。どうも自力カスタマイズの難易度が結構高いと感じるのです。
そのため、問題が無いなら触らない方が良いなと判断して、気にはなっていたけど広告関係はそのままにしておりました。
ある日突然現れる警告。収益が減るかも知れないから修正してちょうだいね。
そんなわけで、なるべくプレビューをせずに記事を書くという事を心がけていたのですが、やっぱり書いた記事はプレビューで確認したくなるというものでして。
そしてとうとう、こんなアナウンスがアドセンスの管理画面に表示されてしまいました。
広告クローラのエラーが生じており、収益の損失が発生する可能性があります。
初め、何のことか分からなかったため華麗にスルーしてブラウザを閉じたんですが、よく見るとエラーって文字が有るじゃ無いですか!
確認してみると、URLの中にpreviewって文字があるので、どうやらプレビュー画面で広告が表示されてるんじゃない? それ修正しておいてねと言われているようです。
つまり、放置してると後々色々面倒くさいことになりそうな匂いがぷんぷんするってやつな気がします。
まぁ、放置していても大丈夫だと思いますよというサイトさんもあったりはしますが、猫壁はちゃんと対策したんだし、空き箱。もやっておいた方が安心だなと。
そういうわけで重い腰をよっこいせと持ち上げ作業することにしました。
……正直に言えば、記事プレビューで確認の回数が結構多いから、元々広告は非表示にしたかったという所でもありますがー。
Cocoonちゃんの設定をちょちょいっと弄って広告を消そう……と思ったら、そう簡単な話じゃなかった。
さて。それでは早速プレビュー画面では広告が出ないように設定してきますか……とCocoonの設定を見てみると、どうやらプレビュー時の広告非表示はCocoonの広告画面で設定不可能のようでして。
一応、Cocoonの広告画面で広告を非表示にする設定というのは出来るのですが、その対象が広告を表示したくないページとカテゴリだけに限られているんですね。
という話ではあるのですが、設定画面には広告除外記事IDとなっており、記事IDは記事それぞれに割り当てられている記事のナンバーのことを指しているようです。
つまり、記事毎に設定はできるけど、プレビューだけ表示しないでね!という設定では無いって事っぽいんですよね。
となるわけです。
そこでネットのどっかに同じように悩んでいる人が居ないものかと探してみたところ……Cocoonのフォーラムに探している内容に近そうな相談がありました。
が。
よく読んでみると、どうやらCocoon側からは設定が出来ないため、プラグインを使って非表示にしているとのこと。
子テーマ側から制御しようとしても、自分には難易度が高すぎたため玉砕。
そんなわけで覚悟を決めてphpと睨めっこすることにしました。
因みに、Cocoonの場合定期的にアップデートしていただけているので、親を触るという選択肢が初めから持てません。(そもそも触るなかもしれないが)
なので、子テーマ側から制御が出来ないかを考えてみたのですが……
寧ろ、今まで良くなんとかなったなという感じではありますが、現実は非常に厳しい物で。
結構ファイルが複雑で、制御タグを入れる場所の検討が全くつきません。
それじゃあ!とfunctions.phpから制御できないかと思ったのですが……
何回やってもトライしてエラー。エラー以外の未来がやってこない!
今後のことを考えたり、勉強をすると言う意味では、素直にフォーラムに駆け込んで教えてもらいながらなんとかした方が良いのは分かっていますが、そこまでガッツのない人間の目の前にちらつく文字は当然「諦めろ」の一言です。
と途方に暮れながらもう一度フォーラムの内容を読んでみると、漸く気が付くわけです。ヒントが目の前にあったことに。
Widget Logicを使って分岐を指定してあげれば解決するんじゃね? これって。
慌てて空き箱。のプレビュー画面を確認してみると、広告が表示されているのはウィジェットエリアのみ。記事本文はちゃんと非表示になっているんですよね。
ということはつまり、ウィジェットエリア側の問題さえ解決出来れば、PHPを編集しなくても問題は解決する!ということです。
問題の解決方法が分かれば修正は早ってもの。作業手順は以下の通り。
② Widget Logicというプラグインをインストールする。
③ アドセンスのコードをコピーしておく。
④ ウィジェット編集画面からカスタムHTMLを選び、ウィジェットエリアに追加。
⑤ カスタムHTMLの内容項目にコピーしておいたアドセンスのコードをペースト。
⑥ ウィジェットのロジックという部分に分岐タグである !is_preview() を追加。
あとは設定を保存するだけです。
これで今まで悩まされていたウィジェットエリアの広告は、プレビュー画面では表示されなくなりました。
結果……
良かった……これで、広告を気にせずプレビューしまくれますよ!
よく考えたらこの設定、猫壁でも同じ事をしてたんだったや。何故思い出せなかった自分。