Last active
September 18, 2016 17:43
-
-
Save leandersikma/1c5507d2cbd29e580e94 to your computer and use it in GitHub Desktop.
Problem with Facebook cache: Page not Found on future posts in Wordpress
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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); | |
} | |
?> |
I just used your script within my Theme Functions.php (funtions.php) and my complete blog turned blank. It doesn't really matter what I do it won't come back up unless I skip a few pages back. I deleted the script and updated it but it's still blank. What now?
EDIT-
I managed to get rid of the script and website is working again. But still 404 page not found....
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This works great but you might sometimes get the FB API rate-limiting you. If that happens you can create a Facebook app and use that to authenticate: