ブログを投稿してそれをFacebookでシェアしようとしたときに、アイキャッチ画像が出てこないことありませんか?この現象、Facebook側に古い情報がキャッシュされちゃってることが原因なんです。
じゃあキャッシュを削除すればすぐ解決じゃん♪ということなんですが、Facebookに残っているキャッシュを削除するには、該当URLをデバッグツールにかける必要があります。
いちいちデバッグツールにかけるのも面倒だし、なんとかならないかなーと思っていたら、モンキーレンチさんでキャッシュのクリアを自動化する方法が掲載されていましたので、紹介したいと思います。
WordPressで記事の公開・更新時にFacebookのキャッシュを削除する方法
以下のコードをfunctions.phpに追加するだけでOKです。
class my_facebook_debugger { private $api = 'https://graph.facebook.com?id=%s&scrape=true'; public function __construct() { add_action( 'transition_post_status', array( $this, 'debugger' ), 10, 3 ); } public function debugger( $new_status, $old_status, $post ) { if ( $new_status === 'publish' ) { $t = wp_remote_post( sprintf( $this->api, get_permalink( $post->ID ) ) ); } } } new my_facebook_debugger();
これだけで、記事を公開したり更新したときに、Facebook側でキャッシュされている情報を削除してくれるようになります。
あとがき
こんなに簡単にあの煩わしい作業を自動化してくれるなんて、モンキーレンチのキタジマさんにはほんと感謝感激です。