You can dynamically change the permalink of a specific page programmatically. We can achieve this with the help of WordPress hooks and a custom function these two will update the page slug at a specified interval.
Step 1 : We need to schedule a cron event that will update the page slug as per our desired interval (daily, weekly, or monthly).
if ( ! wp_next_scheduled( 'update_page_slug_event' ) ) {
wp_schedule_event( time(), 'daily', 'update_page_slug_event' ); // Here you need to change this 'daily' to 'weekly' or 'monthly' as per your need.
}
Step 2 : Once the page slug is updated, we need to flush the rewrite rules in order to ensure the new URL works correctly. Here we have hook the function to the scheduled event.
add_action( 'update_page_slug_event', 'update_page_slug' );
function update_page_slug() {
// ID of the page you want to update
$page_id = 123; // You can replace this with your actual page ID.
// Here we are generating a new slug (you can customize this part as per your need).
$new_slug = 'manage' . wp_generate_password( 6, false, false );
// Here we are updating the page slug.
wp_update_post( array(
'ID' => $page_id,
'post_name' => $new_slug
) );
// This is to flush rewrite rules to ensure the new URL works properly.
flush_rewrite_rules();
}
We need to add the code given in step 1 and step 2 to the functions.php file of the theme.