[wordpress] 予約投稿をfacebookに連携すると404ページになる

JetPackを使ってポスト情報をfacebookに投稿していると、予約投稿がnot foundとして表示される症状が発生。ネット上で以下の記事を見つけた。

Issue with sharing WordPress posts to Facebook – how to deal with it

症状と原因を詳細に説明してくれている。予約投稿はscheduleされた時点で最終的なpermalinkでアクセスできるようになる。実際にポストされるのは時間が過ぎた後の訪問者が来たときになる(実際にぴったりの時間とは限らない)。

投稿者以外の人の訪問の場合、投稿はまだpermalinkではアクセスできないにもかかわらずfacebookがscrapeするように指示を受けてしまうため404ページにリダイレクトされ、その結果をキャッシュしてしまう。これがfacebookに見えたままとなるので404ページや画像が表示されるということが起こっているらしい。

このキャッシュを強制的にクリアするコードが上記ポストのコメントからリンクしたgithubにおかれている。手元のfunctions.phpにそのコードを入れてみると症状が発生しなくなった。

広告

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。