【WordPress】Post Snippetsの動きが怪しい

ここの広告の話。

 

書いた記事のチェックをしていてふと気づいた。

広告が1箇所しか出てなくね?しかもなんかデカいし!

こんな設定にしてないよ!

いつからだ!?

 

 

 

 

広告については

スクリプトをPost Snippetsでショートコード管理して

ショートコードをAddQuicktagでエディタにプルダウン表示して

手動で記事の中に貼り付けている。

 

犯人捜し

 

どこに問題があるか切り分ける必要がある。

同じスクリプトを2つ貼り付けても最初のしか出ていないので

  1. スクリプト側で同じページに2つ以上出ないように制御されている
  2. Post Snippetsが貼り付け損なっている
  3. AddQuicktagは関係なし

 

まず1を確かめるために、WordPressの投稿画面で

ビジュアルモードからテキストモードに切り替えてスクリプトを直接貼り付ける。

表示してみると、2つとも出ている。

 

ということは犯人はヤスPost Snippetsか。

 

 

原因調査

 

そもそもショートコードがスクリプトに変換されていない可能性がある。

画面表示したときの投稿記事のソースを見ればすぐわかる。

 

・・・が、普通に出てる。解せぬ。

 

念のため、ビジュアルモードでショートコードを貼り付けた場合と

テキストモードでスクリプトを貼り付けた場合で比較してみることに。

WinMerge最高!

 

差分発見。

 

ショートコード:
(adsbygoogle = window.adsbygoogle || []).push();

 

直:
(adsbygoogle = window.adsbygoogle || []).push({});

 

これかぁ・・・。

細かく解析するのは面倒だからやらないけど、Post Snippetsが余計なことをしているのは確実。

 

Post Snippetsを使い始めたのはAdSense Managerがおかしなことになったからで、

更に記事中のショートコードを直したくなかったのでAdSense Managerと同じ

ショートコード名を指定できる という理由から。

 

今回も同様に調べてみたけど、良いプラグインは見つからず。

 

過去の記事を検索・置換するプラグインがあるから、

同じショートコード名にするのは諦めて、単純にスクリプトを任意の名称で呼び出す程度で

多機能じゃないプラグインにしよう。

 

選んだのは

ショートコード管理:Shortcoder

一括検索・置換:Search Regex

 

 

別プラグインで対応

 

Shortcoderで新しいコードを定義する。

できたショートコードは[sc name="XXXX"]の形式になってしまうので

既存のショートコードを全て新たに定義したショートコードに置換する。

 

Search Regexで置換したら、画面上では施錠終了したことになっているけど

エラーが発生したというメールが飛んできたw

 

エラーだからロールバックしたんだろうと思って、記事を見ると

確かに置換はされていない。

でもその文字列で検索しても引っかからない。

さらに返還後のショートコードが正しく貼り付けられて動いている。

うわー・・・メンドクサイ系の状態になってしまった。

 

記事をエディタで開くと確かに置換前の文字列になっている。

・・・が実際の画面では置換後のショートコードで動いている。

ちなみにPost Snippetsは無効にしてある。

 

謎すぎる('A`)

 

カテゴリー: Web, ソフトウェア タグ: , , ,  [パーマリンク]

【WordPress】Post Snippetsの動きが怪しい への2件のフィードバック

  1. DEELUXE のコメント:

    同じ問題で長時間ハマっていたので大変参考になりました。ありがとうございます。

    ちなみに、{}がエスケープされるなら2つ書けば行けるんじゃないかと推測して試したところ、無事にPost SnippetsのショートコードでもAdsenseが表示されました。ご参考まで。
    (adsbygoogle = window.adsbygoogle || []).push({{}});

    • YO$HI のコメント:

      どうもYO$HIです。
      記事がお役にたてたようでなによりです。
      何らかの思想があってそういう仕様になっているのだと思いますが、普通に考えると”余計なお世話”ですねw

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です