The editable_slug WordPress PHP filter allows you to modify the editable slug for a post or term.
Usage
add_filter('editable_slug', 'your_custom_function', 10, 2); function your_custom_function($slug, $tag) { // your custom code here return $slug; }
Parameters
$slug
(string) – The editable slug. It will be either a term slug or post URI depending on the context in which it is evaluated.$tag
(WP_Term|WP_Post) – Term or post object.
More information
See WordPress Developer Resources: editable_slug
Examples
Add prefix to post slugs
Add a prefix to the post slugs.
add_filter('editable_slug', 'add_prefix_to_post_slugs', 10, 2); function add_prefix_to_post_slugs($slug, $tag) { if ($tag instanceof WP_Post) { $slug = 'prefix-' . $slug; } return $slug; }
Add suffix to term slugs
Add a suffix to the term slugs.
add_filter('editable_slug', 'add_suffix_to_term_slugs', 10, 2); function add_suffix_to_term_slugs($slug, $tag) { if ($tag instanceof WP_Term) { $slug .= '-suffix'; } return $slug; }
Change all slugs to uppercase
Modify all slugs to be uppercase.
add_filter('editable_slug', 'slug_to_uppercase', 10, 2); function slug_to_uppercase($slug, $tag) { return strtoupper($slug); }
Replace spaces with underscores in slugs
Replace spaces with underscores in slugs.
add_filter('editable_slug', 'replace_spaces_with_underscores', 10, 2); function replace_spaces_with_underscores($slug, $tag) { return str_replace(' ', '_', $slug); }
Remove numbers from slugs
Remove numbers from the slugs.
add_filter('editable_slug', 'remove_numbers_from_slugs', 10, 2); function remove_numbers_from_slugs($slug, $tag) { return preg_replace('/\d/', '', $slug); }