How to automatically update slug

We have custom post type, that doesn’t appear in the search results ie ‘publicly_queryable’ => true, it’s mean, that URL this custom post type can’t be edited from admin dashboard. However we have places where we use this slug and we need have possible somehow can be edit. Problem is that after edit title, that slug will not change. Therefore we need to update slug after post title update.

Automatically update slug with latest title within custom post type

Problem: Automatically update slug with latest title within custom post type

Solution:

<?php
// Automatically update slug with latest title
add_action( 'admin_enqueue_scripts', 'force_update_post_slug' );
	
function force_update_post_slug() {
	$args = [
		'posts_per_page' => -1,
		'post_type' => 'nominees',
		'fields' => 'ids',
		'no_found_rows' => true,
	];
		
	$posts_ids = new WP_Query( $args );
	
	if ( $posts_ids ) {
		foreach ( $posts_ids as $posts_id ) {
		// Check the slug and run an update if necessary
		$new_slug = sanitize_title( get_the_title( $posts_id ) );
				
		if ( basename( get_permalink( $posts_id ) ) != $new_slug ) {
			wp_update_post(
				[
		    		'ID' => get_the_ID( $posts_id ),
					'post_name' => $new_slug,
				]
				);
			}
		}
	}
}

Sources:

  1. https://wordpress.stackexchange.com/questions/295727/automatically-update-slug-with-latest-title-within-custom-post-type

Leave Comment

2 Replies to “Automatically update slug with latest title within custom post type”

  • Jennieka Uper says:

    I know this website offers quality based posts and additional stuff, is there any other site which presents these kinds of things in quality?

  • Darlenen Ewling says:

    Hello, i think that i noticed you visited my web site so i got here to return the choose?. I’m trying to in finding issues to improve my site!I suppose its ok to make use of some of your ideas!!

Your email address will not be published. Required fields are marked *