Third party WordPress plugins & themes support

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.

How to edit custom post type and taxonomy permalinks?

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.

Breadcrumbs support

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/RankMath displays different URL in its metabox?

Both Yoast SEO and RankMath use 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 metabox displayed solely in admin panel. All URLs (including canonical meta tags and sitemaps created by Yoast SEO) are properly filtered by Permalink Manager.

Yoast SEO is one of WordPress SEO plugins that uses native slugs

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.

Yoast sitemap settings

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 settings for language plugins.

How to translate custom permalinks?

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.

WooCommerce permalink manager

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.

Export product permalinks
Permalink Manager's custom permalink value corresponds to the "Custom URI" column in the WooCommerce export/import tool.

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');
New product format with %store% permastructure tag
After the new snippet is added, you can place %store% tag inside permastructure settings for products.
How to use permastructures?

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.
Asgaros forum 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").

Additionally, Permastructures may be used to add location data to "Place" permalinks. Permalink Manager has four specialized fields: %category% (taxonomy: gd_placecategory), %country%, %region%, and %city%.
Permastructure settings for one of WordPress plugins - GeoDirectory
Example permalink format for Places (Tools -> Permalink Manager -> Permastructures).

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 Export

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.

WP All Import and Permalink Manager section
The column with custom permalinks should contain only the relative, internal URI.

Learning Management System

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 );

LearnPress

To avoid the redirect loop on LearnPress dedicated pages, please use the code snippet below.

/**
* Excluding the LearnPress pages from Permalink Manager
*/
function pm_exclude_learnpress_pages( $excluded_ids ) {
	if ( is_array( $excluded_ids ) && function_exists( 'learn_press_get_page_id' ) ) {
		$learnpress_pages = array( 'profile', 'courses', 'checkout', 'become_a_teacher' );
		foreach ( $learnpress_pages as $page ) {
			$excluded_ids[] = learn_press_get_page_id( $page );
		}
	}
	return $excluded_ids;
}
add_filter( 'permalink_manager_excluded_post_ids', 'pm_exclude_learnpress_pages' );
/**
* Disable canonical redirect if LearnPress query variables are detected
*/
function pm_fix_learnpress_wp_query( $query, $old_query ) {
	if ( ! empty( $old_query['view'] ) && ! empty( $old_query['page_id'] ) ) {
		$query['do_not_redirect'] = 1;
	}
	return $query;
}
add_filter( 'permalink_manager_filter_query', 'pm_fix_learnpress_wp_query', 3, 2 );

LearnDash

Permalink Manager currently does not support LearnDash out of the box. LearnDash is partially supported in Permalink Manager with a custom code snippet, however we can not guarantee full compatibility due to the complicated interactions between both plugins.

Themes

Enfold theme

Permalink Manager is the most convenient way to change the permalinks of the Enfold theme's "portfolio" and "porfolio category" items. This feature is covered in a separate article.

How to edit portfolio permalinks in Enfold theme?

Go up