Adsenseのコード貼り付けのためのショートコードを管理するプラグインを
何かの理由で変更する際にアレコレ頑張った結果、手順にしたら簡単だったので
備忘も兼ねてまとめることにした。
Post Snippets は登録してあるコードをそのまま出力してくれないという
致命的な問題があったのが変更するきっかけ。
手順
- ショートコード管理プラグインの変更、スクリプト入力
(Post Snippets → Shortcoder) - 既存の記事を一括置換
- キャッシュのクリア(Memcached)
1. プラグインの変更、スクリプト入力
Post Snippetsを使っていたけど、登録した情報が一部欠損することが判明。
そのおかげで広告が正しく表示されているように見えて
実は1つだけしか表示されていなかった みたいな事が起きた。
なのでショートコード管理プラグインの乗り替えに踏み切った。
過去に AdSense Manager が使い物にならなくなって Post Snippets に乗り替えたけど
選んだ理由は AdSense Manager のショートコード名と同じ体系の定義ができたから。
今回探した中でそういうプラグインは見つからなかった。
諦めてDBの値を直接置換するプラグインを使って一括で直すことにした。
※お約束だけど必ずバックアップを取ること
選んだのは
Shortcoder
使い方自体は非常に簡単。
- Name:ショートコード名
(使用できるのはアルファベット大文字小文字、数字、ハイフン、アンスコ、スペース) - Shortcode content:ショートコードから呼び出すスクリプト本体
見ての通りHTMLタグのサポートがあるエディタになっている。
Adsenseのコードを入れる場合はただコピペするだけ。 - Settings、Visibilty、Tags:使わないので省略
登録すると一覧に出てくる。
<>
をクリックすると貼り付け用のショートコードが表示されるので、
これをコピペに使う。
俺の場合はAddQuicktagに登録してエディタで使いやすくした。
既存の記事を一括置換
ググるとほとんどが Search Regex だけど、古いプラグインだし
最新の環境(特にPHPのバージョン)だとエラーになる。
実害はないけど気持ち悪い。
なので、Better Search Replace というプラグインを使用する。
これも使い方が決まっていれば難しいことはなく。
- Search for:検索する文字列
- Replace with:置換後の文字列
- Select tables:対象とするデータベースのテーブル
※記事であればxxx_posts
を選択する。
全選択もできるけどデータ量によってはMax Page Sizeに引っかかってエラーになる。 - Case-Insensitive、Replace GUIDs:使わない
- Run as dry run?:チェックを入れていると置換は行われず、対象の件数確認ができる。(デフォルトON)
しつこいようだけど必ずバックアップを取ることw
Search for
に今まで使っていたショートコード(ex:shortcode_old)を入力し、
Replace with
にShortcoderで定義したショートコード(ex:sc name="shortcode_new")を入力する。
Run as dry run?
のチェックを外してRun Search/Replace
ボタンをクリック。
これでDBに格納されている記事の文字列を一括で変更できる。
キャッシュのクリア
Memcachedを使っている場合は、キャッシュのクリアをしないと
DBの値を変更してあるのに投稿画面上で古いショートコードが出続ける(事がある)。
この場合はMemcachedのキャッシュをクリアする必要がある。
メニュー
>Memcached
>Memcached
対象サーバを選んでManage Server
ボタンをクリック。
画面の一番下にFlush Memcache
ボタンがあるのでクリック。
警告が出るのでFlush Confirm
ボタンをクリック。
終~了~(´ω`)
参考までに。