The permalink_structure_changed WordPress action fires after the permalink structure is updated.
Usage
add_action('permalink_structure_changed', 'your_custom_function', 10, 2); function your_custom_function($old_permalink_structure, $permalink_structure) { // your custom code here return; }
Parameters
$old_permalink_structure
(string) – The previous permalink structure.$permalink_structure
(string) – The new permalink structure.
More information
See WordPress Developer Resources: permalink_structure_changed
Examples
Log Permalink Structure Changes
Log the old and new permalink structure in a text file when it is changed.
function log_permalink_structure_changes($old_permalink_structure, $permalink_structure) { $log_file = 'permalink_changes_log.txt'; $current_time = date('Y-m-d H:i:s'); $log_message = "[$current_time] Old: $old_permalink_structure, New: $permalink_structure\n"; file_put_contents($log_file, $log_message, FILE_APPEND); } add_action('permalink_structure_changed', 'log_permalink_structure_changes', 10, 2);
Send Email Notification on Permalink Structure Change
Send an email notification to the site administrator when the permalink structure is updated.
function email_admin_on_permalink_change($old_permalink_structure, $permalink_structure) { $to = get_option('admin_email'); $subject = 'Permalink Structure Changed'; $message = "The permalink structure has been updated:\nOld: $old_permalink_structure\nNew: $permalink_structure"; wp_mail($to, $subject, $message); } add_action('permalink_structure_changed', 'email_admin_on_permalink_change', 10, 2);
Update Custom Option on Permalink Structure Change
Update a custom option in the database when the permalink structure is changed.
function update_custom_option_on_permalink_change($old_permalink_structure, $permalink_structure) { update_option('your_custom_option', $permalink_structure); } add_action('permalink_structure_changed', 'update_custom_option_on_permalink_change', 10, 2);
Clear Cache on Permalink Structure Change
Clear the site cache when the permalink structure is updated.
function clear_cache_on_permalink_change($old_permalink_structure, $permalink_structure) { // Replace with your cache-clearing function your_cache_clearing_function(); } add_action('permalink_structure_changed', 'clear_cache_on_permalink_change', 10, 2);
Post Update Notice on Permalink Structure Change
Display a notice on the admin dashboard when the permalink structure is changed.
function show_notice_on_permalink_change($old_permalink_structure, $permalink_structure) { set_transient('your_permalink_structure_changed_notice', true, 60 * 60 * 24); } add_action('permalink_structure_changed', 'show_notice_on_permalink_change', 10, 2); function your_permalink_structure_changed_notice() { if (get_transient('your_permalink_structure_changed_notice')) { echo '<div class="notice notice-info is-dismissible"><p>Permalink structure has been updated.</p></div>'; delete_transient('your_permalink_structure_changed_notice'); } } add_action('admin_notices', 'your_permalink_structure_changed_notice');