Permalink Manager supports many popular WordPress plugins. For a few, you will need to add an additional snippet to your site to get the most out of this plugin.
Please note that the list is not exhaustive and is continually being extended. The WordPress.org plugin directory now has around 60.000 plugins. The absence of a plugin from the list does not always indicate that it will not function with Permalink Manager.
Custom fields & custom post types WordPress plugins
Advanced Custom Fields
The plugin allows you to add custom fields managed by Advanced Custom Fields to custom permalinks.
Inside the permalinks, you may include any of the following field types: "Text", "Number", "Relationship", "Taxonomy", "Select", "Post object", or "Date picker".
Pods, Toolset, JetEngine & Custom Post Type UI
Permalink Manager is compatible with both custom post types and custom fields defined with these plugins. It can be used to modify the permalink structure of custom post types and taxonomies that have been registered using the aforementioned plugins.
In general, Permalink Manager gives you complete control over the format of permalinks for custom post types and taxonomies. This allows you to quickly modify them in bulk or make individual URL adjustments for each of posts and terms.
One of its key applications is to remove default rewrite bases (for example, "product/product-title", "portfolio/portfolio-title") that are appended to the beginning of native permalink. This is just one example, but there are many more ways to use Permalink Manager in combination with Pods, Toolset, JetEngine, or Custom Post Type UI plugin.
Instructions for adding custom fields and categories (custom taxonomies) to single permalinks may be found in other articles.
SEO plugins
Yoast SEO, RankMath & SEOPress
Permalink Manager is compatible with all the key Yoast SEO, RankMath & SEOPress functionalities. Permalink Manager will automatically modify all permalinks in meta tags (canonical URL), sitemaps, and breadcrumbs displayed with these plugins.
It's also possible to replicate the URL structure into the breadcrumbs they generate.
The plugin uses the primary category for default permalinks. To deactivate this functionality just unselect '"Primary category" support' option in Permalink Manager settings.
Why Yoast SEO displays different URL in its metabox?
Yoast SEO uses the native slug to provide the URL preview in its metabox. Currently, there is no technical possibility to make it show the custom permalink established using Permalink Manager. Nevertheless, this issue affects only the Yoast SEO metabox displayed solely in admin panel. All URLs (including canonical meta tags and sitemaps created by Yoast SEO) are properly filtered by Permalink Manager.
Why does Yoast SEO still show original permalinks in the sitemap?
Because creating sitemaps is a resource-intensive process, especially for large websites, your server or third-party plugins (eg. WP Rocket, Litespeed) may cache data. This implies that even after you change the custom permalinks, Yoast SEO may still display them in their previous version due to the cache.
You may force a sitemap update by turning it off in Yoast SEO settings, clearing the cache, and then turning it back on. More information about this issue may be found in Yoast's plugin documentation.
Language plugins
WPML & Polylang
Permalink Manager works with both WPML and Polylang in most usual user cases. In some cases, when Permalink Manager is used with other plugins, some of its built-in features may not work as well as they should. Disabling this feature may help solve any problems you have with how custom permalinks' language is determined.
If you are having problems with the way the language of custom permalinks is recognized, consider deactivating the "WPML/Polylang language mismatch" and "WPML compatibility functions" options in the plugin settings.
The plugin may help you translate the permalink bases or define custom permastructure settings per language without any coding skills.
TranslatePress
Unfortunately, Permalink Manager is not compatible with TranslatePress.
Unlike WPML or Polylang, which save translations as separate posts, TranslatePress adopts a different method to store translated content. As a result, Permalink Manager cannot process permalinks for translated content items.
Furthermore, if the slug is translated directly using TranslatePress, the algorithm that detects custom permalinks will be unable to identify the URI.
WooCommerce
Permalink Manager was created with e-commerce customers in mind, and it fully supports WooCommerce. As a result, the plugin has a vast number of specific features that will allow you to beautify your website's URL addresses.
For instance, you may for instance remove product-category from WooCommerce permalinks. It is also possible to use custom fields inside products permalinks or manually update each of them separately.
It is also possible to use the in-built import/export tool to import and export custom permalinks for products.

Dokan
Using an extra code snippet you can make Permalink Manager include store/vendor name in WooCommerce product permalinks. To take benefit of the snippet, you will need to paste it to functions.php file in your (child) theme directory. This would allow Permalink Manager to identify a new permastructure tag (%store%) for new product permalinks.
If you need to exclude the Dokan dashboard page from the Permalink Manager URI functions, a second code snippet is provided below. This code may be useful if Permalink Manager does not recognize the URLs of Dokan's dashboard sections.
/**
* Use %store% in Products' permastructure settings
*/
function pm_dokan_store_field($default_uri, $native_slug, $post, $slug, $native_uri) {
// Do not affect native URIs
if($native_uri == true || empty($post->post_type) || $post->post_type !== 'product') { return $default_uri; }
if(strpos($default_uri, '%store%') !== false) {
$store_name = get_user_meta($post->post_author, 'dokan_store_name', true);
$default_uri = str_replace('%store%', sanitize_title($store_name), $default_uri);
}
return $default_uri;
}
add_filter('permalink_manager_filter_default_post_uri', 'pm_dokan_store_field', 3, 5);
/**
* Disallow Permalink Manager URI functions for Dokan dashboard
*/
function pm_exclude_dokan_dashboard($ids) {
// Check if Dokan is activated
if(function_exists('dokan_get_option')) {
// Get Dokan dashboard page id
$ids[] = dokan_get_option('dashboard', 'dokan_pages');
}
return $ids;
}
add_filter('permalink_manager_excluded_post_ids', 'pm_exclude_dokan_dashboard');

If you are unsure how to apply the permastrucutre settings, please read this article. Keep in mind that only new permalinks will have the store/vendor name inserted by default. You will have to regenerate old permalinks if you want to use the new permalink format.
Forum/community plugins
bbPress
The free version of the plugin allows you to alter the permalinks for Forums, Topics, and Replies. To change Topic Tags permalinks, you will need the paid version (Permalink Manager Pro).
Buddypress
Unfortunately, Permalink Manager does not support Buddypress at this moment.
Asgaros Forum
To detect the URL addresses of the forums and subforums, Asgaros Forum uses a specific approach. The issue is that it may conflict with the Permalink Manager functions that identify custom permalinks. To ensure that both plugins work smoothly together please pick "Forum" page in Asgaros Forum plugin settings.
Additionally, please copy and paste the following snippet into functions.php in the (child) theme directory.
function pm_stop_redirect_forum() {
global $wp_query;
$wp_query->query_vars['do_not_redirect'] = 1;
}
add_action('asgarosforum_prepare', 'pm_stop_redirect_forum');
Other WordPress plugins
BasePress
In order for Permalink Manager to support BasePress permalinks, the query parameters must be modified. You may accomplish this by using the code snippet below.
/**
* Support "Knowledgebase category" permalinks
*/
function pm_fix_basepress_query($query, $old_query, $uri_parts, $pm_query, $content_type) {
global $basepress_utils ;
if(!empty($pm_query['id']) && !empty($query['knowledgebase_cat'])) {
$kb_category = $query['knowledgebase_cat'];
$query = array(
'post_type' => 'knowledgebase',
'knowledgebase_items' => $kb_category
);
add_filter('basepress_canonical_redirect', '__return_false');
}
return $query;
}
add_filter('permalink_manager_filter_query', 'pm_fix_basepress_query', 3, 5);
GeoDirectory
Permalink Manager may be used to customize the permalinks of any GeoDirectory-controlled custom post types (including "Places").

Default category support
Please put the below PHP code snippet into functions.php in the child theme directory to make Permalink Manager respect the "default category" selection inside the custom permalinks of "Place" post type.
/**
* Support primary term selected with GeoDirectory plugin (https://wpgeodirectory.com/)
*/
function pm_geodirectory_primary_term($replacement_term, $post, $terms, $taxonomy, $native_uri) {
if(!$native_uri && !empty($post->post_type) && $post->post_type == 'gd_place') {
$gd_post = geodir_get_post_info($post->ID);
if(!empty($gd_post->default_category)) {
$primary_term = get_term($gd_post->default_category, 'gd_placecategory');
}
}
return (!empty($primary_term->taxonomy)) ? $primary_term : $replacement_term;
}
add_filter('permalink_manager_filter_post_terms', 'pm_geodirectory_primary_term', 10, 5);
WP Job Manager
The free version of the plugin supports the permalinks of Job Listing items. Editing URLs of Job Types and other user-defined custom taxonomies is available with Permalink Manager Pro.
WP All Export
The WP Export plugin works in combination with Permalink Manager and allows you to include custom permalinks in your export dump. This can be useful if you want to bulk edit the data, for example using Excel.
To add the custom permalinks, simply drag the "Custom URI" field title displayed in the "Permalink Manager" section to the list of exported fields.
WP All Import
Using WP All Import to import posts, pages, custom post type items, or products can be made easier with the help of Permalink Manager. When importing, the plugin can be used to either import custom permalinks or automatically generate them.
In order to import a custom permalink from an imported file, you must first drag the row containing the desired value from the left sidebar into the field in the metabox labeled "Permalink Manager". If this field is left blank, then Permalink Manager will automatically generate a new custom permalink based on your current settings for Permastructure.
When importing data into Permalink Manager, it is important to remember that only the URI should be included in the import file. This means that instead of using a complete URL (e.g. https://example.com/business/softly-t-shirt), you should use just the URI (e.g business/softly-t-shirt). If this step is not followed correctly, Permalink Manager will not be able to process and import the field value correctly.

Tutor LMS
Unlike the built-in hierarchical 'page' post type, 'courses' and 'lesson' are separate post types which are not linked together through '$post->parent'. This means that the %courses% tag will not be recognized by Permalink Manager as is.
In order to enable the use of the %courses% tag for the "lessons" and "quiz" post types in the Permastructure settings, an additional PHP code snippet is required:
/**
* Support %courses% tag (Sensei/Tutor LMS)
*/
function pm_replace_courses_tag( $default_uri, $native_slug, $post, $slug, $native_uri ) {
// Do not affect native URIs or different post types
if ( $native_uri || empty( $post->post_type ) || ! in_array( $post->post_type, array( 'lesson', 'tutor_quiz', 'tutor_assignments' ) ) ) {
return $default_uri;
}
if ( strpos( $default_uri, '%courses%' ) !== false && function_exists( 'tutor_utils' ) ) {
$course_id = tutor_utils()->get_course_id_by_subcontent( $post->ID );
$course_title = ( ! empty( $course_id ) ) ? get_the_title( $course_id ) : '';
$default_uri = str_replace( '%courses%', sanitize_title( $course_title ), $default_uri );
}
return $default_uri;
}
add_filter( 'permalink_manager_filter_default_post_uri', 'pm_replace_courses_tag', 3, 5 );