Permastructures play a key role in the Permalink Manager plugin, defining how URLs are generated for new posts, pages, and terms.
After installing Permalink Manager, your existing permalink structure remains unchanged and continues to follow WordPress’s built-in settings.
Using Permastructures, you can quickly change multiple permalinks for chosen content types at once. The changes do not automatically affect existing items, so you can safely manage your permalinks without disrupting your SEO.
Modifying Permalinks with Permastructures
Permastructures help define how the plugin generates and saves URLs for new posts, pages or terms. In other words, after you publish a new post or term, the initial URL will follow the default permalink structure ("Permastructure"), but you can change it manually using the "URI Editor" if needed.
Any changes made there do not automatically apply to existing items, meaning you can manage your permalinks without worrying about affecting your SEO. The reason for this is that changing URLs that have already been indexed by search engines can hurt your SEO rankings.
The plugin does not automatically update URLs when the Permastructure settings are changed. Instead, you will need to manually use the "Regenerate/reset" tool to update existing permalinks.
How to Edit Permastructures?
To modify Permastructures, go to the WordPress dashboard and click on "Permalink Manager" from the left sidebar menu. In the settings, head to the "Permastructures" tab.

The initial settings will remain as they were before the plugin was added, but you can modify the settings of any content types whenever needed. This gives you the ability to e.g. add custom fields to permalinks or remove the rewrite base from them.
Inside the settings, you can use either regular words or dynamic tags (e.g. %category%), if you want to add dynamic data like the slug of the linked category to the post's URL. If you are not sure about which tags can be used, simply click on “Available tags” to view a general list of tags for each content type.
How to Preview New Custom Permalink Format?
If you are not certain that your new "permastructures" settings are correct, try opening the sample post and inspecting the URL in the "URI Editor". The default URL, based on your updated permalink format from the "Permastructure" settings, will appear in the "Default custom permalink" row.

The “Default custom permalink” field indicates the default format of the custom permalink based on “Permastructure” settings.
How to Use Actual Titles Instead of Native Slugs in Custom Permalinks?
The native slugs are generated from the initial title and will not update automatically if the titles are changed later. By default, custom permalinks include the same native slugs as the original permalinks.
The plugin gives you the option to replace slugs with the post title using the %native_title% tag, or to remove the slug altogether. If you want to use the actual titles for all custom permalinks, a simpler option than using the %native_title% tag is to adjust the global slug settings.
Permalink Manager, like WordPress, will use native slugs by default. In the plugin setting ("Slugs mode" field) you may decide whether either native slugs or actual post titles should be included when new permalinks are generated.
Frequently Asked Questions
Why Is the Slug Automatically Appended?
By default, Permalink Manager will add slugs to custom permalinks if there is no slug tag (e.g. %postname%) in the Permastructure settings. To turn off this feature, you can disable it in the Permastructure settings by selecting "Do not automatically append the slug" after clicking on the "Show additional settings" button.
How Can I Manually Change Many Separate Permalinks Simultaneously?
If you would like to manually tweak the custom permalinks, you can use the Bulk URI Editor. The items are grouped by post type and taxonomy for your convenience.
How to Replace the Slugs With Post/Term IDs?
You can use Permalink Manager to add element IDs to custom permalinks by using dedicated tag: %post_id% for posts and %term_id% for terms. However, if you want to use it to totally replace the slug, you will need to do a few further steps.
To begin, you must activate the "Do not automatically attach the slug" option attached to permastructure settings in order to use post/term IDs instead of slugs. Furthermore, you will need to use extra code snippet to help Permalink Manager recognize URLs with numeric endings and separate them from lookalike pagination endpoints.
add_filter('permalink_manager_deep_uri_detect', '__return_true');
Once it is done, you should adjust the permastructures settings and use %post_id% tag
How to Make Permastructure Formats Change Based on Certain Conditions?
As previously stated, Permastructures are a key component of the plugin, allowing you to specify the way your custom permalinks look like. While you can select a single general permalink format using the plugin's interface, there is a way to dynamically change this format using WordPress hooks.
Overriding the permastructure defined via the plugin interface is possible using the '
permalink_manager_filter_permastructure
' filter. This allows you to dynamically change the permalinks of your posts based on certain conditions.
For example, if you use this filter with the 'has_term()' function to build a code snippet, you can alter the permalinks of a post based on the category it is assigned to:
/**
* How to programmatically modify post permalink formats (permastructures)
*
* @param string $permastructure The permastructure string used when default custom permalink is generated.
* @param WP_Post|WP_Term $post Post or term object
* @return string The new, filtered permastructure string used when default custom permalink is generated (for new posts or existing ones if "Regenerate/reset" tool is used)
*/
function pm_filter_post_permastructure($permastructure, $post) {
	// Filter only 'Post' permalinks
	if(empty($post->post_type) || $post->post_type !== 'post') {
		return $permastructure;
	}
	// A. Post assigned to either 'Category A' or 'Category B'
	if(has_term(array('Category A', 'Category B'), 'category', $post)) {
		$permastructure = '%category%/%postname%';
	}
	// B. Post assigned to other categories
	else {
		$permastructure = '%year%/%monthnum%/%day%/%postname%';
	}
	return $permastructure;
}
add_filter('permalink_manager_filter_permastructure', 'pm_filter_post_permastructure', 10, 2);
The code above is just a basic example. For further information and examples, please visit a dedicated page.