予約投稿でのFacebookコメントのunreachableエラーがやっと解決!

やっと解決しました!以前、解けないままでいたFacebookコメントエラー問題でしたが、とうとう解決策を見出しました。
エラーは「Warning 投稿記事URL is unreachable」、日本語だと「警告: 投稿記事URLに到達できません。」というやつです。
Victory
この時の気分はこんな感じ。

事の発端はFacebookコメントを投稿下部に表示させてみてからのことでした。以下のように、unreachableエラーが出て、シェアしようとしてもサムネイルが表示されないという事態が起こり、最終的にプラグイン「Open Graph Pro」でOGPの設定をして一旦は解消はしたのですが、予約投稿しているせいか、公開後、都度デバッグかけないと解決しないという状態が続いていました。
fb_01

いさぎよく、予約投稿をそもそもあきらめるか?
瞬間、頭をよぎりましたが、記事ストックがない状態で追われるように書くのは、仕事と育児のバランスもとれなくなって精神衛生上よくありません。

とりあえず、予約投稿は継続しながらも毎回デバッグかけないといけない状態をいかに解決するか?というところからスタートしました。
最初にまず、予約投稿失敗する時の対処プラグインとかも試してみましたが、そもそも予約投稿自体は成功しているので、問題は解決しません。
q(´・ω・`)p

本質的にFacebookへ到達できないステータスのキャッシュが残っているから今回の事態は起こっているような様子なので、キャッシュをクリアする方法について、検討しました。しかしリビジョンも自動保存もしない設定にしてあるのに、どうしてそもそもキャッシュが残りうるのか?と、ここでふと、キャッシュはFacebook側で削除しないといけないのでは?という考えにいたりました。

wp plugins

そこで探してみると便利そうなプラグインが出てきました。「Automatic Facebook Cache Cleaner」このプラグインで公開された記事を更新すると、確かにエラーは消えました。

しかし、実はこのプラグイン、要するにデバッグツールを記事の更新時に一緒に実施するのであって、予約投稿の公開時にはトリガーとなるものがなく動作しません。

結局、公開された記事を再び編集画面から更新しないとエラーは解消されず、まぁデバッグツールを毎回使用するのを多少、簡略化してくれたかなという程度のものでした。また記事更新のたびにデバッグかけるので、どの記事を更新しても今まで1秒くらいだった待ち時間が3秒くらいかかっていて、ちょっといただけない感じでした。q(´・ω・`)p

予約投稿のトリガーは、その公開日時以降の最初のアクセスなので、このタイミングで記事の更新をかけるということがwp-cronをいじれば可能だろうか?とかいろいろ考えましたが、それも結局のところ対処法であって、そもそもエラーが初めから出ないように根本的な原因を取り除くのが正しい姿なはずです。

要するに今回の問題は、下書き保存状態の記事をプレビューで見ることで、まだ非公開のはずの記事がFacebookとの接続を試みていることから発生しており、そのキャッシュがそもそも作られないようにする必要があるのです。なんか難しい日本語ですいません。

ideas

ここでこの事例に似たケースがGoogle Analyticsで発生していたことを思い出しました。自分で記事をプレビューしていたものがアナリティクスで検知してページビュー数を上げてしまうというやつです。これを防ぐ方法と同じアプローチで、下書きプレビュー時にはFacebookから検知されないようにすればよいのでは?

☆この方法が今回の解決策になりました☆

<?php if (!is_user_logged_in()) : ?>
//ここにFacebookコメントのコード
<?php endif; ?>

上のようにユーザーがログインしている時はFacebookコメント欄が表示されないようします。

記事をプレビューするということは基本的にはユーザーはログインしているはずなので、プレビュー時にはFacebookコメント欄が表示されず、当然エラーも起こりません。この状態ならエラーのキャッシュが残らずデバッグかける必要もなくなります。
既に予約投稿してしまった記事についても再度更新することでエラーおきなくなりました。(ダメな場合はパーマリンクを少し変えるなり、新規で記事を起こすなりで良いかと思います。)

以上、長々と書きましたが、解決までかなり苦労したので、その労苦と解決した時の喜びを表現してみました。
最後まで読んでいただいた皆さん、ありがとうございました。さぁご一緒に。
Victory

スポンサーリンク


予約投稿でのFacebookコメントのunreachableエラーがやっと解決!」への2件のフィードバック

  1. はじめまして。
    自分も同じ問題に当たっていたので大変参考になりました。

    ただ、まだ素人でコードなどがよくわかっていなかったので、どこにそのコードを入れればいいのか分からないのですが、どうすればよいでしょうか?

    ちなみに今自分は「wp-facebook-comment」というプラグインを使っています。

    1. 実は最近テーマをTwentyThirteenに切り替えてからFacebookコメントを表示させていませんでした。「wp-facebook-comment」を調べてみましたが、関数で実現しているみたいですね。ちょっと私も導入してみて動作確認してみたいと思います。またわかりましたら追記しますね。

コメントを残す

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


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)