{"id":3644,"date":"2025-02-15T15:43:03","date_gmt":"2025-02-15T15:43:03","guid":{"rendered":"https:\/\/s-o-s.net\/permalink-manager-lite\/"},"modified":"2025-02-15T15:43:03","modified_gmt":"2025-02-15T15:43:03","slug":"permalink-manager-lite","status":"publish","type":"post","link":"https:\/\/s-o-s.net\/en_gb\/permalink-manager-lite\/","title":{"rendered":"Permalink Manager Lite"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<article id=\"post-41217\" class=\"alignwide post-41217 plugin type-plugin status-publish hentry plugin_tags-custom-permalinks plugin_tags-permalink plugin_tags-permalinks plugin_tags-url-editor plugin_tags-woocommerce-permalinks plugin_category-utilities-and-tools plugin_contributors-mbis plugin_business_model-commercial plugin_committers-mbis\">\n<div class=\"plugin-banner\" id=\"plugin-banner-permalink-manager\"><\/div>\n<header class=\"plugin-header\">\n<div class=\"entry-heading-container\">\n<div>\n<div class=\"entry-thumbnail\">\n\t\t\t\t\t<img decoding=\"async\" class=\"plugin-icon\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/icon.svg?rev=2625166\" alt=\"\">\t\t\t\t<\/div>\n<div>\n<h1 class=\"plugin-title\">Permalink Manager Lite<\/h1>\n<p>\t\t\t\t\t<span class=\"byline\">By <span class=\"author vcard\"><a target=\"_blank\" class=\"url fn n\" href=\"https:\/\/profiles.wordpress.org\/mbis\/\" rel=\"noopener\">Maciej Bis<\/a><\/span><\/span>\n\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"plugin-actions\">\n<div class=\"wp-block-button is-small plugin-download download-button\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/downloads.wordpress.org\/plugin\/permalink-manager.2.5.0.zip\" rel=\"noopener\">Download<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/header>\n<p><!-- .entry-header --><\/p>\n<p>\t<span id=\"description\"><\/span><br \/>\n\t<span id=\"reviews\"><\/span><br \/>\n\t<span id=\"installation\"><\/span><br \/>\n\t<span id=\"developers\"><\/span><br \/>\n\t<span id=\"advanced\" class=\"\"><\/span><br \/>\n\t<span id=\"section-links\"><\/p>\n<ul class=\"tabs clear\">\n<li id=\"tablink-description\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/permalink-manager\/#description\" rel=\"noopener\">Details<\/a><\/li>\n<li id=\"tablink-reviews\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/permalink-manager\/#reviews\" rel=\"noopener\">Reviews<\/a><\/li>\n<li id=\"tablink-installation\">\n\t\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/permalink-manager\/#installation\" rel=\"noopener\">Installation<\/a>\n\t\t\t<\/li>\n<li id=\"tablink-developers\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/permalink-manager\/#developers\" rel=\"noopener\">Development<\/a><\/li>\n<\/ul>\n<div id=\"link-support\">\n\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/permalink-manager\/\" rel=\"noopener\">Support<\/a>\n\t\t<\/div>\n<p>\t<\/span><br \/>\n\t<script type=\"text\/javascript\">if ( '#changelog' == window.location.hash ) { window.setTimeout( function() { window.location.hash=\"#developers\"; }, 10 ); }<\/script><\/p>\n<div class=\"entry-content\">\n<div id=\"tab-description\" class=\"plugin-description section\">\n<h2 id=\"description-header\">Description<\/h2>\n<p>Permalink Manager is a permalink plugin that allows users to adjust URLs for posts, pages, and custom post types (categories, tags and custom taxonomies are supported in Pro version).<\/p>\n<p>Unlike the built-in WordPress permalink system, which only allows modifications to the last part of the URL, known as the \u201cslug\u201d, the Permalink Manager lets you <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/basics\/uri-editor\/\" rel=\"nofollow ugc noopener\">change each individual URL<\/a> whatever you like.<\/p>\n<p>Following permalink customization, <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/plugin-settings\/canonical-redirects\/#custom-permalinks\" rel=\"nofollow ugc noopener\">the old URLs will automatically redirect to the new addresses<\/a> in order to prevent 404 or duplicate content issues.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/?utm_source=wordpressorg\" rel=\"nofollow ugc noopener\">Documentation<\/a> | <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/buy-permalink-manager-pro\/?utm_source=wordpressorg\" rel=\"nofollow ugc noopener\">Buy Permalink Manager Pro<\/a><\/p>\n<p>The plugin works with all custom post types and taxonomies, as well as many popular third-party plugins like as WooCommerce, Yoast SEO, WPML, and Polylang.<\/p>\n<h4>Features<\/h4>\n<ul>\n<li><strong>Edit the individual permalinks as you choose<\/strong><br \/>For a consistent and SEO-friendly URL structure, you may customize and <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/basics\/change-permalinks\/\" rel=\"nofollow ugc noopener\">change the permalink<\/a> of each post, page, and custom post type item.  <em>Categories, tags &amp; custom taxonomies terms permalinks can be edited in Permalink Manager Pro.<\/em><\/li>\n<li><strong>Edit URLs in bulk using permalink formats<\/strong><br \/>In order to speed up the process of bulk URL modification, the plugin allows you to choose the default format for custom URLs using \u201cPermastructures\u201d settings. The new format will be applied automatically when a new post\/term is added or once the old permalinks are regenerated.<\/li>\n<li><strong>Custom post types support<\/strong><br \/>You may easily remove post type rewrite (base) slugs from your WordPress permalinks, for example. The plugin may be configured to filter just specified post types and taxonomies permalinks, excluding the rest of your content types.<\/li>\n<li><strong>Translate permalinks<\/strong><br \/>If you have the WPML or Polylang plugins installed on your website, Permalink Manager allows you to translate the slug and specify different permalink format\/structure for each language.<\/li>\n<li><strong>Remove parent slugs<\/strong><br \/>Looking for a simple solution to shorten lengthy, hierarchical URL addresses? The plugin may be used to <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/tutorials\/wordpress-permalinks-structure\/#remove-parent-slugs\" rel=\"nofollow ugc noopener\">remove parent slugs from WordPress permalinks<\/a>.<\/li>\n<li><strong>Add category slug to post permalinks<\/strong><br \/>Do you want to <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/tutorials\/add-category-slug-wordpress-permalinks\/\" rel=\"nofollow ugc noopener\">add category slugs in your post permalinks<\/a>? Permalink Manager is the most convenient way to create a silo structure for your URL addresses.<\/li>\n<li><strong>Auto-redirect old URLs<\/strong><br \/>An old (original) URL is automatically forwarded to an updated URL to avoid the 404 error and to improve the user experience.<\/li>\n<\/ul>\n<h4>Additional features available in Permalink Manager Pro<\/h4>\n<p>The free version covers all the necessary functions, while the premium version adds a few handy functionalities that can improve the process of adjusting WordPress permalinks.<\/p>\n<p>Click here for additional information and to purchase <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro?utm_source=wordpress\" rel=\"nofollow ugc noopener\">Permalink Manager Pro<\/a>.<\/p>\n<ul>\n<li><strong>Taxonomies support<\/strong><br \/>Taxonomies are fully supported in the premium version (categories, tags &amp; custom taxonomies). You may adjust individual term permalinks or change them all at once using \u201cPermastructures\u201d.<\/li>\n<li><strong>WooCommerce support<\/strong><br \/>Permalink Manager Pro may be used to change the URL addresses of WooCommerce products, tags, categories, and attributes. For example, you may use the plugin to <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/tutorials\/remove-product-category-woocommerce-urls\/\" rel=\"nofollow ugc noopener\">remove \/product\/ and \/product-category\/ from WooCommerce URL<\/a>.<\/li>\n<li><strong>Custom fields support<\/strong><br \/>Only Permalink Manager makes it possible to <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/tutorials\/how-to-use-custom-fields-inside-wordpress-permalinks\/\" rel=\"nofollow ugc noopener\">add custom fields to WordPress permalinks<\/a> without the need for any technical skills on the part of the user.<\/li>\n<li><strong>Extra redirects<\/strong><br \/>You can define extra 301 redirects (aliases) for any post, page, or term. Additionally, you may assign a redirect URL to each post\/term, which will take users to any external URL address. For each element, the redirect URLs might be specified separately.<\/li>\n<\/ul>\n<\/div>\n<div id=\"screenshots\" class=\"plugin-screenshots section\">\n<h2 id=\"screenshots-header\">Screenshots<\/h2>\n<ul class=\"plugin-screenshots\">\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-1.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-1.png?rev=2033240\" alt=\"\"><\/a><figcaption>Permalink URI editor.<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-2.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-2.png?rev=2033240\" alt=\"\"><\/a><figcaption>Permalink URI editor in Gutenberg.<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-3.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-3.png?rev=2033240\" alt=\"\"><\/a><figcaption>\u201cFind &amp; replace\u201d tool.<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-4.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-4.png?rev=2033240\" alt=\"\"><\/a><figcaption>\u201cRegenerate\/Reset\u201d tool.<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-5.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-5.png?rev=2033240\" alt=\"\"><\/a><figcaption>A list of updated posts after the permalinks are regenerated.<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-6.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-6.png?rev=2033240\" alt=\"\"><\/a><figcaption>Permastructure settings.<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-7.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-7.png?rev=2033240\" alt=\"\"><\/a><figcaption>Permastructure settings (different permalink structure per language).<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-8.png?rev=2033240\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/permalink-manager\/assets\/screenshot-8.png?rev=2033240\" alt=\"\"><\/a><figcaption>Permalink Manager settings.<\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"tab-installation\" class=\"plugin-installation section\">\n<h2 id=\"installation-header\">Installation<\/h2>\n<p>Go to <code>Plugins -&gt; Add New<\/code> section from your admin account and search for <code>Permalink Manager<\/code>.<\/p>\n<p>You can also install this plugin manually:<\/p>\n<ol>\n<li>Download the plugin\u2019s ZIP archive and unzip it.<\/li>\n<li>Copy the unzipped <code>permalink-manager<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the \u2018Plugins\u2019 menu in WordPress<\/li>\n<\/ol>\n<h4>Bulk URI editor<\/h4>\n<p>After the plugin is installed you can access its dashboard from this page: <code>Tools -&gt; Permalink Manager<\/code>.<\/p>\n<h4>Single URI editor<\/h4>\n<p>To display the URI editor metabox click on gray \u201cPermalink Editor\u201d button displayed below the post\/page title.<\/p>\n<\/div>\n<div id=\"faq\" class=\"plugin-faq section\">\n<h2 id=\"faq-header\">FAQ<\/h2>\n<dl>\n<dt id=\"can%20i%20use%20the%20plugin%20to%20edit%20the%20category%20permalinks%3F\">\n<h3>Can I use the plugin to edit the category permalinks?<\/h3>\n<\/dt>\n<dd>\n<p>This feature is available only in Permalink Manager Pro.<\/p>\n<\/dd>\n<dt id=\"is%20it%20possible%20to%20use%20permalink%20manager%20on%20large%20websites%3F\">\n<h3>Is it possible to use Permalink Manager on large websites?<\/h3>\n<\/dt>\n<dd>\n<p>When the Permalink Manager was first designed, it was supposed to be used for a typical WordPress website, which usually has <strong>less than a few thousand subpages<\/strong>. As a result, all custom permalinks are <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/filters-hooks\/how-the-custom-uris-and-redirects-are-stored\/\" rel=\"nofollow ugc noopener\">saved in a single row in the database<\/a> in order to avoid slowing down the pageload with multiple SQL queries to the database. This is the most effective approach for small and medium-sized websites, without affecting site speed.<\/p>\n<p>While this data structure works for the vast majority of WordPress sites, it may not be optimal if you want to use the plugin to rewrite <strong>tens of thousands of permalinks<\/strong>. What works well for a smaller website may not scale well for a megasite. When the number of addresses on your site exceeds tens of thousands, the custom permalinks array may become quite huge, and any operations on it can have an effect on pageload time.<\/p>\n<p>To summarize, the plugin is suitable for small and medium-sized websites. It will not slow down your pageload time or affect its usability in any way. However, if you want to use it on a much bigger website with thousands of permalinks (more than 60.000), please consider excluding content types that do not require customized permalink format in order to lower the custom permalinks array. For further details on the plugin\u2019s performance, please <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/basics\/performance\/\" rel=\"nofollow ugc noopener\">visit this post<\/a>.<\/p>\n<\/dd>\n<dt id=\"can%20i%20define%20different%20permalink%20formats%20per%20each%20language.\">\n<h3>Can I define different permalink formats per each language.<\/h3>\n<\/dt>\n<dd>\n<p>Yes, it is possible if you are using either WPML or Polylang. You can find <a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/docs\/tutorials\/how-to-translate-permalinks\/\" rel=\"nofollow ugc noopener\">the full instructions here<\/a>.<\/p>\n<\/dd>\n<dt id=\"will%20the%20old%20permalink%20automatically%20redirect%20the%20new%20ones%3F\">\n<h3>Will the old permalink automatically redirect the new ones?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, Permalink Manager will automatically redirect the native permalinks (used when the plugin is disabled, or before it was activated) to the actual, custom permalinks.<\/p>\n<\/dd>\n<dt id=\"does%20this%20plugin%20support%20buddypress%3F\">\n<h3>Does this plugin support Buddypress?<\/h3>\n<\/dt>\n<dd>\n<p>Currently, there is no 100% guarantee that Permalink Manager will work correctly with Buddypress.<\/p>\n<\/dd>\n<dt id=\"can%20i%20remove%20the%20plugin%20after%20the%20permalinks%20are%20updated%3F\">\n<h3>Can I remove the plugin after the permalinks are updated?<\/h3>\n<\/dt>\n<dd>\n<p>Yes, if you used Permalink Manager only to regenerate the slugs (native post names). Please note that if you use custom permalinks (that differ from the native ones), they will no longer be used after the plugin is disabled.<\/p>\n<p>It is because Permalink Manager overwrites one of the core WordPress functionalities to bypass the rewrite rules (\u201cregular expressions\u201d to detect the posts\/pages\/taxonomies\/etc. and another parameters from the URL) by using the array of custom permalinks (you can check them in \u201cDebug\u201d tab) that are used only by the plugin.<\/p>\n<\/dd>\n<\/dl>\n<\/div>\n<div id=\"tab-reviews\" class=\"plugin-reviews section\">\n<h2 id=\"reviews-header\">Reviews<\/h2>\n<div class=\"plugin-reviews\">\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/6c24cac3a0d0c2bcafc6473528722806f86badca6ddfe8a9b22a7fa376fa3bb5?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/6c24cac3a0d0c2bcafc6473528722806f86badca6ddfe8a9b22a7fa376fa3bb5?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"4 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"4\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url broken_link\" href=\"https:\/\/wordpress.org\/support\/topic\/plugin-works-great-but-marketing-is-annoying\/\" rel=\"noopener\">Plugin works great but marketing is annoying<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/dmitriamartin\/\" title=\"Posts by Dmitri Martin\" rel=\"author noopener\">Dmitri Martin<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">February 14, 2025<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I upgrade to the pro version but didn\u2019t use any pro features so my license upgraded.  Now I get invasive notices saying \u201cPlease paste the licence key to access all Permalink Manager Pro updates &amp; features\u00a0on this page.\u201d on every plugin\u2019s admin page, not just Permalink\u2019s admin pages.  This is invasive and I can\u2019t image other plugin developers appreciate it. WordPress should not allow this kind of behavior.As for me getting rid of the message, I still don\u2019t need the pro features so I\u2019m not going to renew just to get rid of the notices.  However, I still want to use the non-pro features.  Unfortunately, I don\u2019t see a way to click any button and make the notice go away and I\u2019m afraid if I uninstall it and reinstall the free version, I\u2019ll mess up some of the pages that use the plugin.  There should be a button I can click to just opt in to only the free version and get rid of the notices.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/ddf394c22b4c8b2b9c86d05f6aba3844d1d014a8fec66b0ffe5661b72a189538?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/ddf394c22b4c8b2b9c86d05f6aba3844d1d014a8fec66b0ffe5661b72a189538?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/free-is-worth-your-time-pro-is-worth-the-money\/\" rel=\"noopener\">Free is worth your time; Pro is worth the money<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/geraldbiggs\/\" title=\"Posts by geraldbiggs\" rel=\"author noopener\">geraldbiggs<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">February 12, 2025<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I was tasked with a large site url migration to cleanly recategorize a poorly structured ecommerce site (thousands of products). At every interval of my speculative testing, to production this plugin has automated or clarified many of the challenges in this activity. <\/p>\n<p>It has worked seamlessly with both custom code to automate much of the url structure based off custom product data, and nuanced structures. <\/p>\n<p>The most essential aspect of a plugin is its adaptability and extensibility to perform these tasks \u2013 and here I found many daunting tasks to be quite easy. It has worked with Yoast, SEO Press, and as stated \u2013 custom code.<\/p>\n<p>Redirecting large volumes of urls has the potential to be draining on the server, and the plugin states these challenges. I can say it works very well, and where I needed to optimize \u2013 the task was achievable.<\/p>\n<p>Finally, in terms of lost urls to 404s my issues in this area were surprisingly low. As a developer setting up a toolkit for my team it has been a great service. Support has been consistent, kind and informative.<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/0fccee17433f050863f521d66a74e8abcb7c028c30ea8e5e7a190384de4aca47?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/0fccee17433f050863f521d66a74e8abcb7c028c30ea8e5e7a190384de4aca47?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/pro-version-so-helpful-for-drupal-migration\/\" rel=\"noopener\">Pro version SO helpful for Drupal migration<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/hcethatsme\/\" title=\"Posts by Hilary Caws-Elwitt\" rel=\"author noopener\">Hilary Caws-Elwitt<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">January 4, 2025<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">Migrating from a Drupal 7 site is made much easier by this great plugin. We can keep all our existing paths, and make redirects with special characters. Plus it keeps the ability to manage redirects from each post. Support responds almost immediately. Highly recommend!<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/9460c5783a519152043fed2b5c99d72ba7e53df8a5991f78a489677e4d5795cc?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/9460c5783a519152043fed2b5c99d72ba7e53df8a5991f78a489677e4d5795cc?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/love-at-first-site-3\/\" rel=\"noopener\">Love at first site<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/skvandeusen\/\" title=\"Posts by Kyle Van Deusen\" rel=\"author noopener\">Kyle Van Deusen<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">December 13, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I tried to convince my client that his \u201csimple request\u201d was a total nightmare that might cost hundreds or even thousands of dollars to solve. <\/p>\n<p>Then I installed Permalink Manage Lite and was finished in about 3.9 seconds \ud83d\ude05 <\/p>\n<p>10\/10 would recommend.<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/1b69ffc835d22fa5d61f21feff9169da61826dc83fb86aa738600db4eac5b29b?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/1b69ffc835d22fa5d61f21feff9169da61826dc83fb86aa738600db4eac5b29b?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/we-upgraded-to-pro-and-heres-why\/\" rel=\"noopener\">We upgraded to Pro and here\u2019s why<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/forrentspace\/\" title=\"Posts by forrentspace\" rel=\"author noopener\">forrentspace<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 14, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I recently encountered a challenge with Permalink Manager where I needed to automatically update custom permalinks for new listings. After reaching out, I was genuinely impressed to hear back directly from the tool\u2019s founder. Not only did he respond promptly, but he went above and beyond, providing the exact code needed for a customized solution\u2014and at no cost. His responsiveness and willingness to help were exceptional, reflecting a deep commitment to his users. I requested his assistance in implementing the code, and he graciously agreed to handle it personally.<\/p>\n<p>Permalink Manager has become an essential tool for our platform, and the support behind it has proven to be just as impressive. I\u2019m happy to support such a dedicated developer and am thrilled to recommend the pro license for anyone looking for a powerful, customizable permalink solution backed by outstanding support.<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/dd81890a4fde8219932dd8520ec1e975e90fa201166062542bcca2be362c41e1?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/dd81890a4fde8219932dd8520ec1e975e90fa201166062542bcca2be362c41e1?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/great-plugin-39670\/\" rel=\"noopener\">Great plugin, easy to use<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/lykkemedia\/\" title=\"Posts by lykkemedia\" rel=\"author noopener\">lykkemedia<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">October 25, 2024<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">So easy to use, perfect!<\/div>\n<\/p><\/div>\n<\/article><\/div>\n<p>\t\t<a target=\"_blank\" class=\"reviews-link\" href=\"https:\/\/wordpress.org\/support\/plugin\/permalink-manager\/reviews\/\" rel=\"noopener\"><br \/>\n\t\t\tRead all 171 reviews\t\t<\/a><\/div>\n<div id=\"tab-developers\" class=\"plugin-developers section\">\n<h2 id=\"developers-header\">Contributors &amp; Developers<\/h2>\n<div class=\"plugin-contributors\">\n<p>\u201cPermalink Manager Lite\u201d is open source software. The following people have contributed to this plugin.<\/p>\n<p><span class=\"screen-reader-text\">Contributors<\/span><\/p>\n<ul id=\"contributors-list\" class=\"contributors-list\">\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/11f3dfd66d360d5f58eebba0d864615f34369bad5c7acc947c9453e92d3fac28?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/11f3dfd66d360d5f58eebba0d864615f34369bad5c7acc947c9453e92d3fac28?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/mbis\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tMaciej Bis\t\t\t\t<\/a>\n\t\t\t<\/li>\n<\/ul><\/div>\n<div class=\"plugin-development\">\n<p>\u201cPermalink Manager Lite\u201d has been translated into 4 locales. Thank you to <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/permalink-manager\/contributors\" rel=\"noopener\">the translators<\/a> for their contributions.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/permalink-manager\" rel=\"noopener\">Translate \u201cPermalink Manager Lite\u201d into your language.<\/a><\/p>\n<h3>Interested in development?<\/h3>\n<p><a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/browser\/permalink-manager\/\" rel=\"noopener\" class=\"broken_link\">Browse the code<\/a>, check out the <a target=\"_blank\" href=\"https:\/\/plugins.svn.wordpress.org\/permalink-manager\/\" rel=\"noopener\">SVN repository<\/a>, or subscribe to the <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/permalink-manager\/\" rel=\"noopener\" class=\"broken_link\">development log<\/a> by <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/permalink-manager\/?limit=100&amp;mode=stop_on_copy&amp;format=rss\" rel=\"noopener\" class=\"broken_link\">RSS<\/a>.<\/p>\n<\/div>\n<\/div>\n<div id=\"tab-changelog\" class=\"plugin-changelog section\">\n<h2 id=\"changelog-header\">Changelog<\/h2>\n<h4>2.5.0 (February 5, 2025)<\/h4>\n<ul>\n<li>Dev \u2013 Permastructure settings UI improvements<\/li>\n<li>Dev \u2013 Improved support for WP All Import<\/li>\n<li>Dev \u2013 Language filter added for URI Editor (WPML\/Polylang)<\/li>\n<li>Fix \u2013 Improvements for MyListing theme integration<\/li>\n<\/ul>\n<h4>2.4.4.3 (December 16, 2024)<\/h4>\n<ul>\n<li>Dev \u2013 Code refactoring for \u201cBulk URI Editor\u201d<\/li>\n<li>Dev \u2013 Code adjustments for MyListing support<\/li>\n<li>Dev \u2013 Minor code improvements<\/li>\n<li>Fix \u2013 Fallback for get_primary_term() function in older versions of The SEO Framework plugin<\/li>\n<\/ul>\n<h4>2.4.4.2 (October 16, 2024)<\/h4>\n<ul>\n<li>Dev \u2013 Improved support for REGEX formulas in \u201cFind &amp; Replace\u201d<\/li>\n<li>Dev \u2013 Code adjustments to improve WPCS compliance<\/li>\n<li>Fix \u2013 Fixed search functionality bug in Bulk URI Editor<\/li>\n<\/ul>\n<h4>2.4.4.1 (August 28, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 Fixed the deprecated warning for The SEO Framework plugin<\/li>\n<li>Fix \u2013 Fixed taxonomies\u2019 custom permalink import feature for WP All Import in Permalink Manager Lite<\/li>\n<li>Dev \u2013 Code adjustments for WPForo integration<\/li>\n<li>Dev \u2013 Minor code improvements<\/li>\n<\/ul>\n<h4>2.4.4 (July 24, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 The native slug is updated when changed from permalink editor via Gutenberg\/Block Editor<\/li>\n<li>Fix \u2013 The URLs with empty \u201cattachment\u201d endpoint returns 404 error<\/li>\n<li>Dev \u2013 The translated taxonomies\u2019 slugs are used when %taxonomy% tag is used in Permastructures<\/li>\n<li>Dev \u2013 Code refactoring &amp; further improvements<\/li>\n<\/ul>\n<h4>2.4.3.4\/2.4.3.5 (June 6, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 Security fix for Permalink_Manager_UI_Elements-&gt;get_the_form() function<\/li>\n<li>Dev \u2013 The breadcrumbs support can only be enabled for content items that have custom permalinks<\/li>\n<\/ul>\n<h4>2.4.3.3 (May 16, 2024)<\/h4>\n<ul>\n<li>Dev \u2013 Optimization of \u201cPermalink_Manager_Core_Functions::fix_pagination_pages\u201d<\/li>\n<li>Dev \u2013 The canonical redirect function has been improved to fully handle the \u201c\/page\/1\u201d and \u201c\/1\/\u201d endpoints as well as the \u201cp\u201d, \u201cpage_id\u201d, and \u201cname\u201d query parameters in URLs<\/li>\n<li>Fix \u2013 The plugin may save the native slug for \u201cdraft\u201d posts and pages even if WordPress has not generated it yet<\/li>\n<li>Fix \u2013 \u201cCustomize URL\u201d in the admin toolbar works now correctly also for categories, and custom taxonomies<\/li>\n<li>Fix \u2013 \u201cAuto-update mode\u201d is now respected in Advanced Translation Editor (WPML)<\/li>\n<\/ul>\n<h4>2.4.3.2 (March 18, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 Further security improvements for AJAX functions and \u201cBulk Tools\u201d<\/li>\n<li>Dev \u2013 Minor code improvements<\/li>\n<\/ul>\n<h4>2.4.3.1 (February 12, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 Security fix for Permalink_Manager_Actions-&gt;ajax_detect_duplicates() function<\/li>\n<li>Dev \u2013 Minor code improvements<\/li>\n<\/ul>\n<h4>2.4.3 (February 6, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 Code refactoring and optimization<\/li>\n<li>Fix \u2013 Minor improvements for RankMath redirection hooks<\/li>\n<li>Enhancement \u2013 Improvements for \u201cForce 404 on non-existing pagination pages\u201d functionality<\/li>\n<li>Enhancement \u2013 The \u201cRegenerate\/reset\u201d &amp; \u201cFind\/replace\u201d now can be used in preview mode without saving the changes<\/li>\n<li>Dev \u2013 New filter hooks \u2013 \u201cpermalink_manager_pre_update_post_uri\u201d &amp; \u201cpermalink_manager_pre_update_term_uri\u201d<\/li>\n<li>Dev \u2013 Support for translated \u201cpage\u201d endpoint in Polylang Pro<\/li>\n<li>Dev \u2013 Support for primary terms controlled by All In One SEO Pro<\/li>\n<\/ul>\n<h4>2.4.2 (January 9, 2024)<\/h4>\n<ul>\n<li>Fix \u2013 The Permalink_Manager_Helper_Functions::replace_empty_placeholder_tags() no longer decodes invalid ASCII characters<\/li>\n<li>Fix \u2013 The old slug (\u201c_wp_old_slug\u201d) is now saved correctly in Block Editor (Gutenberg)<\/li>\n<li>Dev \u2013 New \u2018permalink_manager_sanitize_title\u2019 filter is added<\/li>\n<li>Dev \u2013 Duplicated dashes are now removed from default permalinks unless \u201cStrip special characters\u201d is disabled in the plugin settings<\/li>\n<li>Dev \u2013 Minor fixes and improvements<\/li>\n<\/ul>\n<h4>2.4.1.6 (November 6, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 Refactoring &amp; minor code improvements<\/li>\n<\/ul>\n<h4>2.4.1.4\/2.4.1.5 (September 25, 2023)<\/h4>\n<ul>\n<li>Enhancement \u2013 Support for \u201cPrimary category\u201d set with SmartCrawler plugin<\/li>\n<li>Enhancement \u2013 Partial support for Site Kit by Google plugin<\/li>\n<li>Dev \u2013 Minor code improvements<\/li>\n<\/ul>\n<h4>2.4.1.3 (August 7, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 Code refactoring<\/li>\n<li>Fix \u2013 Fixed \/feed\/ endpoint support<\/li>\n<\/ul>\n<h4>2.4.1.2 (June 28, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 Draft posts no longer automatically generate custom permalinks, but users may set them manually if necessary, or they will be generated when the post is published<\/li>\n<li>Fix \u2013 Duplicated REST API calls from Gutenberg JS functions are now ignored when custom permalinks are generated<\/li>\n<li>Fix \u2013 The \u2018High-Performance order storage (COT)\u2019 declaration for the WooCommerce has been fixed<\/li>\n<\/ul>\n<h4>2.4.1 (May 22, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 The function that adds the \u201cPermalink Manager\u201d button via \u2018get_sample_permalink_html\u2019 filter has been updated<\/li>\n<li>Dev \u2013 The function that controls permalink trailing slashes has been refactored and improved<\/li>\n<li>Dev \u2013 When WPML is enabled, Permalink Manager uses \u201cterm_taxonomy_id\u201d instead of \u201cterm_id\u201d for language mismatch functions to avoid compatibility issues<\/li>\n<li>Dev \u2013 To avoid problems with other 3rd party plugins, the function that places the \u201cPermalink Manager\u201d button below the title editor field in Classic Editor mode no longer overwrites the whole HTML<\/li>\n<li>Enhancement \u2013 The plugin interface\u2019s text descriptions and label names have been simplified for readability<\/li>\n<li>Enhancement \u2013 Added new section \u201cExclusion settings\u201d with a field to manually enter IDs of posts\/terms to be ignored by Permalink Manager<\/li>\n<li>Fix \u2013 The compatability problem that caused \u201cfatal error\u201d for some RankMath users has been resolved<\/li>\n<\/ul>\n<h4>2.4.0 (April 12, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 Improved custom permalink detection function<\/li>\n<li>Dev \u2013 Minor code improvements for the breadcrumbs filter function<\/li>\n<li>Dev \u2013 Minor CSS changes<\/li>\n<li>Dev \u2013 New filter added \u2013 \u2018permalink_manager_excluded_element_id\u2019<\/li>\n<li>Dev \u2013 New filter added \u2013 \u2018permalink_manager_duplicate_uri_policy\u2019<\/li>\n<li>Dev \u2013 Now users may select in \u201cWPML\/Polylang fix language mismatch\u201d settings field between loading translation or triggering the canonical redirect to the detected item<\/li>\n<li>Dev \u2013 Support for WooCommerce \u2018High-Performance order storage (COT)\u2019 declared<\/li>\n<li>Fix \u2013 The RankMath redirection function is disabled if custom permalink is detected to prevent redirect loop<\/li>\n<li>Fix \u2013 The \u201cExclude drafts &amp; pending posts\u201d setting field has been changed to allow for greater control in generating and editing custom permalinks for draft and pending posts<\/li>\n<\/ul>\n<h4>2.3.1.1 (February 16, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 Hotfix for \u201cQuick Edit\u201d URI editor<\/li>\n<\/ul>\n<h4>2.3.1 (February 13, 2023)<\/h4>\n<ul>\n<li>Dev \u2013 Bulk tools (\u201cRegenerate\/Reset\u201d and \u201cFind &amp; replace\u201d) and \u201cQuick Edit\u201d code was refactored<\/li>\n<li>Dev \u2013 Minor code improvements<\/li>\n<li>Dev \u2013 New filter field \u2013 \u2018permalink_manager_ate_uri_editor\u2019<\/li>\n<li>Dev \u2013 Improved compatibility with WPML\u2019s Advanced Translation Editor<\/li>\n<li>Fix \u2013 The \/feed\/ endpoint returns 404 error if \u2018feeds\u2019 in rewrite property of requested post type object is set to false<\/li>\n<li>Fix \u2013 The canonical redirect is no longer forced for LearnPress front-end pages<\/li>\n<\/ul>\n<h4>2.3.0 (December 14, 2022)<\/h4>\n<ul>\n<li>Dev \u2013 For improved readability, the plugin\u2019s code has been reformatted and more comments have been added to match WordPress PHP Coding Standards<\/li>\n<li>Dev \u2013 To simplify the codebase, redundant functions and variables were removed<\/li>\n<li>Fix \u2013 The post\/term titles in Bulk URI Editor are protected from XSS (Cross-site scripting) attacks by sanitizing the displayed titles<\/li>\n<li>Fix \u2013 Improved compatibility with Groundhogg plugin<\/li>\n<li>Fix \u2013 Improved compatibility with BasePress plugin<\/li>\n<li>Fix \u2013 Minor improvements for WPML compatibility<\/li>\n<li>Fix \u2013 The bug that caused the message \u201cYou are not allowed to remove Permalink Manager data!\u201d to show up randomly in the admin dashboard has been fixed<\/li>\n<\/ul>\n<h4>2.2.20.4 (November 23, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 The \u201cURI Editor\u201d for individual term pages is now called later to ensure that all custom taxonomies are registered<\/li>\n<li>Dev \u2013 The \u201cnonce\u201d field has been renamed for clarity<\/li>\n<li>Dev \u2013 New filter added \u2013 \u2018permalink_manager_get_language_code\u2019<\/li>\n<\/ul>\n<h4>2.2.20.2\/2.2.20.3 (November 15, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 A nonce field has been added to debug tools code for increased security<\/li>\n<li>Fix \u2013 The \u201cFix language mismatch\u201d function now functions exactly the same way in Polylang as it does in WPML<\/li>\n<\/ul>\n<h4>2.2.20.1 (October 31, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 Security fix for BAC vulnerability found in the debug function that allowed unauthorized removal of single URIs<\/li>\n<\/ul>\n<h4>2.2.20 (October 10, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 The URLs with duplicated slashes (eg. example.com\/sample-page\/\/\/\/) are now handled correctly and forwarded to the canonical URL<\/li>\n<li>Fix \u2013 The redirect problem was resolved with WPForo versions after 2.0.1<\/li>\n<li>Dev \u2013 Improved compatibility with the WP All Import plugin functions<\/li>\n<li>Dev \u2013 Improved compatibility with Polylang plugin<\/li>\n<li>Dev \u2013 Better support for ACF Relationship fields<\/li>\n<li>Dev \u2013 The plugin no longer (by default) supports custom post types &amp; taxonomies that do not have the \u201cquery_var\u201d and \u201crewrite\u201d properties<\/li>\n<li>Enhancement \u2013 In \u201cExclude drafts\u201d mode, the URI Editor field in the \u201cQuick Edit\u201d section becomes \u201cread-only\u201d for the \u201cDraft\u201d posts<\/li>\n<\/ul>\n<h4>2.2.19.3 (August 11, 2022)<\/h4>\n<ul>\n<li>Dev \u2013 New filter added \u2013 \u2018permalink_manager_pre_sanitize_title\u2019<\/li>\n<li>Fix \u2013 The old slugs are saved in the \u2018_wp_old_slug\u2019 meta key even if the native slugs are changed in the URI Editor in the Gutenberg mode.<\/li>\n<li>Fix \u2013 Extra security check in the \u201cDebug\u201d section to prevent unauthorized users (CSRF) from removing the plugin\u2019s data.<\/li>\n<\/ul>\n<h4>2.2.19.2 (July 8, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 JS conflict fixed (\u201cCannot read properties of null (reading \u2018isSavingMetaBoxes\u2019)\u201d)<\/li>\n<\/ul>\n<h4>2.2.19.1 (June 27, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 JS conflict fixed (\u201cCannot read property \u2018isSavingPost\u2019 of null\u201d)<\/li>\n<\/ul>\n<h4>2.2.19 (June 27, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 The term custom permalink is now returned in the correct language<\/li>\n<li>Fix \u2013 In Gutenberg mode, the custom permalinks are saved correctly and are not changed back to the default format (\u201cURI Editor\u201d is now only reloaded once the post has been saved and the metaboxes have been refreshed)<\/li>\n<li>Enhancement \u2013 Old URIs are saved as \u201cextra redirects\u201d if content is updated with WP All Import<\/li>\n<li>Dev \u2013 Additional minor improvements in code (including changes to make it work with PHP 8.1)<\/li>\n<\/ul>\n<h4>2.2.18 (May 18, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 The \u201cpermalink_manager_filter_permastructure\u201d filter can now also be used before the \u201cPermastructure\u201d settings are saved in the database<\/li>\n<li>Enhancement \u2013 Improved support for RankMath breadcrumbs<\/li>\n<li>Dev \u2013 License notification function has been improved (Permalink Manager Pro)<\/li>\n<li>Dev \u2013 Additional minor improvements in code<\/li>\n<\/ul>\n<h4>2.2.17 (March 22, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 Permalink Manager supports WPML\u2019s \u201cPost Types &amp; Taxonomy Translation\u201d settings and returns the permalink of the fallback post\/term with the correct language code<\/li>\n<li>Fix \u2013 When the auto-update mode for categories is disabled, the manually adjusted permalinks are no longer overwritten by the default ones<\/li>\n<li>Enhancement \u2013 Permalink Manager now allows you to rewrite just chosen articles and terms while leaving the rest untouched (See \u2018\u201dAuto-update\u201d permalinks\u2019 settings field)<\/li>\n<li>Enhancement \u2013 Improved support for SEOPress breadcrumbs<\/li>\n<li>Enhancement \u2013 \u201cAuto-update permalinks\u201d setting is now replaced with \u201cURI update mode\u201d to give users better control on how Permalink Manager generates and saves the custom permalinks<\/li>\n<li>Dev \u2013 Additional minor improvements in code<\/li>\n<\/ul>\n<h4>2.2.16 (January 23, 2022)<\/h4>\n<ul>\n<li>Enhancement \u2013 Improved support for \u201cPrimary category\u201d feature included in Yoast SEO<\/li>\n<li>Enhancement \u2013 Added support for Avia\/Enfold breadcrumbs filter<\/li>\n<li>Enhancement \u2013 Further optimisation and improvements for Permalink_Manager_Core_Functions-&gt;new_uri_redirect_and_404() function<\/li>\n<li>Fix \u2013 Permalink Manager now recognises the \u201cExplore\u201d listing page in MyListing theme properly<\/li>\n<\/ul>\n<h4>2.2.15.1 (January 14, 2022)<\/h4>\n<ul>\n<li>Fix \u2013 \u201cRegenerate\/reset\u201d tool works correctly again in Permalink Manager Lite<\/li>\n<\/ul>\n<h4>2.2.15 (January 12, 2022)<\/h4>\n<ul>\n<li>Enhancement \u2013 UI Improvements for Regenerate\/reset tool<\/li>\n<li>Dev \u2013 WPML_URL_Filters-&gt;permalink_filter() hook is also used by Permalink Manager to filter custom permalinks<\/li>\n<li>Enhancement \u2013 wp_make_link_relative() function is used to prevent redirect loops in new_uri_redirect_and_404() (suggested by mgussekloo)<\/li>\n<li>Fix \u2013 Adjustments to the debug function\u2019s security to prevent XSS injection<\/li>\n<\/ul>\n<h4>2.2.14 (October 20, 2021)<\/h4>\n<ul>\n<li>Enhancement \u2013 Improvements for Gutenberg Editor<\/li>\n<li>Dev \u2013 Tippy.js (by atomiks) updated to version 6.3.2<\/li>\n<li>Fix \u2013 From now on, the user role selected in \u201cURI Editor role capability\u201d is respected in \u201cQuick Edit\u201d box hooks (reported by @lozeone)<\/li>\n<li>Dev \u2013 Further security improvements inside WP-Admin dashboard (reported by Vlad Vector)<\/li>\n<\/ul>\n<h4>2.2.13.1 (September 20, 2021)<\/h4>\n<ul>\n<li>Dev \u2013 Minor security improvements inside WP-Admin dashboard<\/li>\n<li>Fix \u2013 Allow canonical redirect for default language if \u201cHide URL language information for default language\u201d is turned on in Polylang settings<\/li>\n<li>Enhancement \u2013 New settings field \u2013 \u201cPrimary category support\u201d<\/li>\n<li>Enhancement \u2013 \u201cForce 404 on non-existing pagination pages\u201d works now with archive pages<\/li>\n<\/ul>\n<h4>2.2.12 (August 17, 2021)<\/h4>\n<ul>\n<li>Dev \u2013 New filters added \u2013 \u2018permalink_manager_excluded_post_ids\u2019 &amp; \u2018permalink_manager_excluded_term_ids\u2019<\/li>\n<li>Dev \u2013 Additional minor changes in the codebase<\/li>\n<li>Fix \u2013 Canonical permalinks for blog pagination is now correctly filtered (if Yoast SEO is used)<\/li>\n<li>Fix \u2013 Better support for \u2018private\u2019 posts &amp; pages<\/li>\n<\/ul>\n<h4>2.2.11 (June 24, 2021)<\/h4>\n<ul>\n<li>Fix \u2013 The function that automatically removes the broken URIs is no longer triggered when WP Rocket is turned on and non-logged-in user tries to access the broken URL.<\/li>\n<\/ul>\n<h4>2.2.10 (June 7, 2021)<\/h4>\n<ul>\n<li>Enhancement \u2013 New settings field \u2013 \u201cCopy query parameters to redirect target URL\u201d &amp; \u201cExtra redirects (aliases)\u201d<\/li>\n<li>Enhancement \u2013 UI improvements in settings section<\/li>\n<li>Dev \u2013 Improved support for WPML\u2019s Classic Translation Editor<\/li>\n<li>Dev \u2013 Additional minor changes in the codebase<\/li>\n<\/ul>\n<h4>2.2.9.9 (April 26, 2021)<\/h4>\n<ul>\n<li>Fix \u2013 Hotfix for AMP WP integration<\/li>\n<\/ul>\n<h4>2.2.9.8 (April 26, 2021)<\/h4>\n<ul>\n<li>Fix \u2013 The old native slug is now correctly saved after it is changed in URI Editor.<\/li>\n<li>Enhancement \u2013 The post type archives are now also added to the filtered breadcrumbs trail<\/li>\n<li>Enhancement \u2013 Basic support added for WP All Export plugin<\/li>\n<li>Enhancement \u2013 Basic support added for AMP for WP<\/li>\n<li>Dev \u2013 (Permalink Manager Pro only) \u201cPlugin Update Checker\u201d by YahnisElsts library updated to 4.11 version<\/li>\n<\/ul>\n<h4>2.2.9.7 (March 11, 2021)<\/h4>\n<ul>\n<li>Enhancement \u2013 Support for WooCommerce CSV Product Importer\/Exporter added<\/li>\n<li>Enhancement \u2013 Better support for relationship field (ACF)<\/li>\n<li>Fix \u2013 The custom redirects are now case-insensitive<\/li>\n<\/ul>\n<h4>2.2.9.6 (February 8, 2021)<\/h4>\n<ul>\n<li>Fix \u2013 Hotfix for WooCommerce coupon related functions<\/li>\n<\/ul>\n<h4>2.2.9.5 (February 8, 2021)<\/h4>\n<ul>\n<li>Fix \u2013 The custom permalink is generated properly if the product is duplicated in WooCommerce dashboard<\/li>\n<li>Enhancement \u2013 New settings field \u2013 \u201cExclude drafts\u201d<\/li>\n<li>Enhancement \u2013 Minor code improvements<\/li>\n<\/ul>\n<p><a target=\"_blank\" href=\"https:\/\/permalinkmanager.pro\/changelog\/\" rel=\"nofollow ugc noopener\">Full changelog is available here.<\/a><\/p>\n<\/div><\/div>\n<p><!-- .entry-content --><\/p>\n<p>\t<!-- .entry-meta --><br \/>\n<\/article>\n<p><br \/>\n<br \/><a href=\"https:\/\/wordpress.org\/plugins\/permalink-manager\/\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Permalink Manager Lite By Maciej Bis Download Details Reviews Installation Development Support Description Permalink Manager is a permalink plugin that allows users to adjust URLs for posts, pages, and custom post types (categories, tags and custom taxonomies are supported in Pro version). Unlike the built-in WordPress permalink system, which only allows modifications to the last [&hellip;]<\/p>","protected":false},"author":149,"featured_media":3645,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[43,39,40],"tags":[2490,2110,2489],"class_list":["post-3644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-commercial-plugin","category-lite-version","category-wp-plugin-solution","tag-lite","tag-manager","tag-permalink"],"acf":[],"fifu_image_url":"https:\/\/ps.w.org\/permalink-manager\/assets\/banner-772x250.png?rev=2625164","_links":{"self":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/users\/149"}],"replies":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/comments?post=3644"}],"version-history":[{"count":0,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/3644\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media\/3645"}],"wp:attachment":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media?parent=3644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/categories?post=3644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/tags?post=3644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}