debugMessage(__CLASS__ . "/" . __FUNCTION__ . ": Non-update skipped for post ID " . $post_id . "."); return; } // only automatically create redirects if we're supposed to. $abj404logic = ABJ_404_Solution_PluginLogic::getInstance(); $options = $abj404logic->getOptions(); if ($options['auto_redirects'] != '1') { $abj404logging->debugMessage(__CLASS__ . "/" . __FUNCTION__ . ": Auto-redirects off " . "(skipped) (post ID " . $post_id . ")."); return; } $postStatus = get_post_status($post_id); if (!in_array($postStatus, array('publish', 'published'))) { $abj404logging->debugMessage(__CLASS__ . "/" . __FUNCTION__ . ": Post status: " . $postStatus . " (skipped) (post ID " . $post_id . ")."); return; } // get the old slug $abj404dao = ABJ_404_Solution_DataAccess::getInstance(); $abj404logic = ABJ_404_Solution_PluginLogic::getInstance(); $options = $abj404logic->getOptions(); $oldURL = $abj404dao->getPermalinkFromCache($post_id); if ($oldURL == null || $oldURL == "") { $abj404logging->debugMessage("Couldn't find old slug for updated page. ID " . $post_id . ", old URL: " . $oldURL . ", post name: " . $post->post_name . ", update: " . $update); return; } $newURL = get_permalink($post); $oldURLParsed = parse_url($oldURL); $oldSlug = $oldURLParsed['path']; if ($oldURL == $newURL) { $abj404logging->debugMessage("Save post listener: Old and new URL are the same. (Ignored) " . "ID: " . $post_id . ", old URL: " . $oldURL . ", old slug: " . $oldSlug . ", new slug: " . $post->post_name . ", update: " . $update); return; } // create a redirect from the old to the new. $abj404dao->setupRedirect($oldSlug, ABJ404_STATUS_AUTO, ABJ404_TYPE_POST, $post_id, $options['default_redirect'], 0); $abj404logging->infoMessage("Added automatic redirect after slug change from " . $oldURL . ' to ' . $newURL . " for post ID " . $post_id); } }