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.
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:
I know this website offers quality based posts and additional stuff, is there any other site which presents these kinds of things in quality?
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!!