gleenk
10/22/2014 - 12:26 PM

Problem with Facebook cache: Page not Found on future posts in Wordpress

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);
}

?>