WordPressのOGP設定で二重の罠にハマった。Open Graph Proとjetpackの相性の悪さ。

ogタグが重複している、という現象が起きてちょっと困ったので備忘しておきます。 Open Graph Proめー。 っていうか、jetpackめー。 TwitterとかFacebookにURLを貼るとそのURLの内容がウインドウ内に取得される仕組みがありますが、それはリンク先のページのOGタグを読んでやっているそうです。 まずは“Open Graph Pro”を導入しました。

第一の罠

Open Graph Proのインストール・設定方法は以下にお任せするとして。
さて、設定していざテスト、ということで、Facebookの「いまどんな気持ち?」にURLを貼っつけてみると、、、なにかおかしい。思い通りのデータを取ってこない。 ということで、ちょっと調べてみたら、ブログのOGPタグが重複して出力されていました。 出どころはどこだと調べてみると、Open Graph Proとなんとjetpackが吐いているとのこと。しかもjetpackはインストールすると何も設定せずにしてご親切にOGPタグを吐いてくれるようです。 と、いうことで、以下の情報から、
Jetpackが出力するOGPタグを削除する方法
jetpackがOGPタグを吐かないようにfunction.phpに以下の記述をします。
remove_action(‘wp_head’,’jetpack_og_tags’);
で、確認してみると、、、まだ吐いてるやん。

第二の罠

さらに調べてみると、どうやらjetpackの最近の仕様変更で、上記記述がされていてもogタグを吐いてしまうらしく、以下のように記述しないと吐くのを止めません。吐くのを止めるのは以下の記述を行います。
add_filter(‘jetpack_enable_open_graph’, ‘__return_false’, 99); Jetpackが出力するOGPが仕様変更? 無効化設定が無視され出力されていた件 より。 ※2014/03/15日時点では、この記述でogタグが吐かれなくなります。今後のJetPackの仕様変更でどうなるかはわかりませんので、注意が必要ですね。
これでjetpackからはogタグが吐かれなくなったのですが・・・FacebookのOGデバッガでチェックしてみると、なんかエラーが・・・。redirectがどうのこうのと。(メモり忘れたのでエラー内容は失念)

第三の罠

どうやら、個別記事ではなく、ブログのトップページに吐かれるog:urlタグの一番後ろに”/”が無いのが良くないようなんですね。じゃあ、WordPressの設定-一般でURLのケツに”/”を入れればいいかとおもいきや、入れて保存すると自動で消されるというw なんかもう色々とめんどくさくなってしまったので、Open Graph Proプラグインをアンインストールし、以下のサイトを参考に、自前でOGPタグを吐くようにしました。
[WordPress]これは簡単!プラグインを使わずにOGPを設定する方法!
こちらからソースを頂き使いましたが、トップページの場合、どうやら一番最新エントリのOGPデータを取ってきてしまうようなので、トップページの場合はそのブログ自体のOGPデータを取得するよう修正させて頂いたものが以下のコードです。 ああ、罠は二つじゃなくて三つだったか・・・。 ということで・・・まあ、プラグインは便利だからといって調子に乗って入れまくっているとこんな弊害がでますよ、ということと、いざとなったら頼るは己の手のみ、ということが再確認できました。 同じような事でお困りの方は参考にされてください。 ただ、私もWordPress初心者PHPもほぼ未経験。大部分カンで修正していますので、思い通りの動作しなくても怒らないでくださいね。 ]]>