Problem with Facebook cache: Page not Found on future posts in Wordpress
<?php
// Issues with sharing posts on Facebook: http://www.passwordincorrect.com/issue-with-sharing-wordpress-posts-to-facebook/
// Add this chunck of code in your functions.php or anywhere else in your theme files.
// Register action for post status transitions
add_action( 'transition_post_status' , 'purge_future_post', 10, 3);
// Check if the new transition is publish, for correctness you could check if $old_status == 'pending', but I want that every post (which is published) is cached again (just to be sure).
function purge_future_post( $new_status, $old_status, $post ) {
if($new_status == 'publish') {
purge_facebook_cache($post);
}
}
// Ping Facebook to recache the URL.
function purge_facebook_cache($post_id) {
$url = get_permalink($post_id);
$fb_graph_url = "https://graph.facebook.com/?id=". urlencode($url) ."&scrape=true";
$result = wp_remote_post($fb_graph_url);
}
?>