[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f5owxxZnH10bMJ1hHQtZp-nfNtZivT-SxSMn8DyVVUbU":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":40,"analysis":142,"fingerprints":412},"enhanced-custom-permalinks","Enhanced Custom Permalinks","0.1.1","Tor N. Johnson","https:\u002F\u002Fprofiles.wordpress.org\u002Fkasigi\u002F","\u003Cp>This plugin is DEPRECATED! Do NOT use it on new installations. It has been updated for legacy support only and no longer will function for new content creation. If you need custom permalinks beyond what WP supports, consider plugins like permalink-manager.\u003C\u002Fp>\n\u003Cp>This plugin is a fork of the Custom-Permalinks plugin.  It has some expanded bug patches AND is able to interoperate with the WP-no-category-base plugin.\u003C\u002Fp>\n\u003Cp>This plugin will allow you to set permalinks in a more precise way – in short you can include sub-folders.  A page could have the permalink http:\u002F\u002Fwww.example.com\u002FaFolder\u002FanotherFolder\u002Fpage.html without having to create the intermediate pages or categories aFolder\u002FanotherFolder\u002F.\u003C\u002Fp>\n\u003Cp>Be warned: \u003Cem>This plugin is not a replacement for WordPress’s built-in permalink system\u003C\u002Fem>. Check your WordPress\u003Cbr \u002F>\nadministration’s “Permalinks” settings page first, to make sure that this doesn’t already meet your needs.\u003C\u002Fp>\n\u003Cp>This plugin is only useful for assigning custom permalinks for \u003Cem>individual\u003C\u002Fem> posts, pages, tags or categories.\u003Cbr \u002F>\nIt will not apply whole permalink structures, or automatically apply a category’s custom permalink to the posts\u003Cbr \u002F>\nwithin that category.\u003C\u002Fp>\n","Set custom permalinks on a per-post, per-tag or per-category basis.",1000,14729,82,14,"2025-10-20T04:48:00.000Z","6.5.8","3.0","",[20,21,22,23,24],"address","custom","link","permalink","url","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fenhanced-custom-permalinks","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fenhanced-custom-permalinks.zip",100,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":38,"computed_at":39},"kasigi",5,1040,88,30,86,"2026-04-04T00:39:07.977Z",[41,62,84,105,122],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":51,"num_ratings":52,"last_updated":53,"tested_up_to":54,"requires_at_least":55,"requires_php":56,"tags":57,"homepage":59,"download_link":60,"security_score":61,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"custom-post-type-permalinks","Custom Post Type Permalinks","3.5.3","Toro_Unit (Hiroshi Urabe)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftoro_unit\u002F","\u003Cp>Custom Post Type Permalinks allow you edit the permalink structure of custom post type.\u003C\u002Fp>\n\u003Cp>Change custom taxonomy archive’s permalink to “example.org\u002Fpost_type\u002Ftaxonomy_name\u002Fterm_slug”. Can disable this fix.\u003C\u002Fp>\n\u003Cp>And support \u003Ccode>wp_get_archives( 'post_type=foo' )\u003C\u002Fcode> and post type date archive (ex. \u003Ccode>example.com\u002Fpost_type_slug\u002Fdate\u002F2010\u002F01\u002F01\u003C\u002Fcode> ).\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fcustom-post-type-permalinks\" rel=\"nofollow ugc\">This Plugin published on GitHub.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Donation: Please send \u003Ca href=\"http:\u002F\u002Fwww.amazon.co.jp\u002Fregistry\u002Fwishlist\u002FCOKSXS25MVQV\" rel=\"nofollow ugc\">My Wishlist\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fwww.paypal.me\u002Ftorounit\" rel=\"nofollow ugc\">Paypal\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Translators\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Japanese(ja) – \u003Ca href=\"http:\u002F\u002Fwww.torounit.com\u002F\" rel=\"nofollow ugc\">Toro_Unit\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French(fr_FR) – \u003Ca href=\"http:\u002F\u002Fgeoffrey.crofte.fr\u002F\" rel=\"nofollow ugc\">Geoffrey Crofte\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Russian(ru_RU) – \u003Ca href=\"http:\u002F\u002Folart.ru\" rel=\"nofollow ugc\">Olart\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fnatali_z\" rel=\"nofollow ugc\">Natali_Z\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Also checkout\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-post-type-permalinks\u002F\" rel=\"ugc\">Simple Post Type Permalinks\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Setting on Code\u003C\u002Fh3>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>register_post_type( 'foo',\n    array(\n        'public' => true,\n        'has_archive' => true,\n        'rewrite' => array(\n            \"with_front\" => true\n        ),\n        'cptp_permalink_structure' => '%post_id%'\n    )\n);\u003C\u002Fpre>\n\u003Ch4>Exclude specific post type\u003C\u002Fh4>\n\u003Cpre>add_filter(  'cptp_is_rewrite_supported_by_foo',  '__return_false' );\n\n\u002F\u002F or\n\nadd_filter(  'cptp_is_rewrite_supported', function ( $support , $post_type ) {\n    if ( 'foo' === $post_type ) {\n        return false;\n    }\n    return $support;\n}, 10, 2);\u003C\u002Fpre>\n","Edit the permalink of custom post type.",200000,1713689,96,71,"2024-10-10T06:12:00.000Z","6.6.5","6.1","7.4",[20,58,22,23,24],"custom-post-type","https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fcustom-post-type-permalinks","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-post-type-permalinks.3.5.3.zip",92,{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":13,"num_ratings":72,"last_updated":73,"tested_up_to":74,"requires_at_least":75,"requires_php":76,"tags":77,"homepage":79,"download_link":80,"security_score":81,"vuln_count":82,"unpatched_count":28,"last_vuln_date":83,"fetched_at":30},"custom-permalinks","Custom Permalinks","3.1.2","Sami Ahmed Siddiqui","https:\u002F\u002Fprofiles.wordpress.org\u002Fsasiddiqui\u002F","\u003Cp>You want to take control of your WordPress site’s URLs? The \u003Cstrong>Custom Permalinks\u003C\u002Fstrong> plugin gives you the power to set unique, custom URLs for any post, page, tag, or category. This means you can design your site’s structure exactly how you envision it, rather than being limited by WordPress’s default settings. When you set a custom permalink, the original post URL will be automatically redirected to your new, customized URL.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Individual Permalink Control\u003C\u002Fstrong>: Assign unique URLs to any post, page, tag, or category.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Site Structure Control\u003C\u002Fstrong>: Gain ultimate control over how your site’s URLs are organized.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Post Type Permalink Structures (v3.0.0+)\u003C\u002Fstrong>: Define custom permalink structures for each public Post Type using predefined tags, automatically generating URLs upon content creation. You can still manually edit any permalink. If left empty, default settings will apply.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Getting Started: Plugin Settings\u003C\u002Fh3>\n\u003Cp>You can configure Custom Permalinks by navigating to \u003Cstrong>Settings > Custom Permalinks\u003C\u002Fstrong> in your WordPress Dashboard.\u003C\u002Fp>\n\u003Ch3>Available Tags for Permalink Structures\u003C\u002Fh3>\n\u003Cp>When setting up your custom permalink structures, you can use a variety of tags that will dynamically populate the URL. Here’s a breakdown of what’s available:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>%year%\u003C\u002Fstrong>: The year of the post in four digits, eg: 2025\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%monthnum%\u003C\u002Fstrong>: Month the post was published, in two digits, eg: 01\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%day%\u003C\u002Fstrong>: Day the post was published in two digits, eg: 02\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%hour%\u003C\u002Fstrong>: Hour of the day, the post was published, eg: 15\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%minute%\u003C\u002Fstrong>: Minute of the hour, the post was published, eg: 43\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%second%\u003C\u002Fstrong>: Second of the minute, the post was published, eg: 33\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%post_id%\u003C\u002Fstrong>: The unique ID of the post, eg: 123\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%category%\u003C\u002Fstrong>: A clean version of the category name (its slug). Nested sub-categories will appear as nested directories in the URL..\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%author%\u003C\u002Fstrong>: A sanitized version of the post author’s name.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%postname%\u003C\u002Fstrong>: A clean version of the post or page title (its slug). For example, “This Is A Great Post!” becomes \u003Ccode>this-is-a-great-post\u003C\u002Fcode> in the URL.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%parent_postname%\u003C\u002Fstrong>: Similar to \u003Ccode>%postname%\u003C\u002Fcode>, but uses the immediate parent page’s slug if a parent is selected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%parents_postnames%\u003C\u002Fstrong>: Similar to \u003Ccode>%postname%\u003C\u002Fcode>, but includes all parent page slugs if parents are selected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%title%\u003C\u002Fstrong>: The title of the post, converted to a slug. For example, “This Is A Great Post!” becomes \u003Ccode>this-is-a-great-post\u003C\u002Fcode>. Unlike \u003Ccode>%postname%\u003C\u002Fcode> which is set once, \u003Ccode>%title%\u003C\u002Fcode> automatically updates in the permalink if the post title changes (unless the post is published or the permalink is manually edited).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%ctax_TAXONOMY_NAME%\u003C\u002Fstrong>: A clean version of a custom taxonomy’s name. Replace \u003Ccode>TAXONOMY_NAME\u003C\u002Fcode> with the actual taxonomy name. You can also provide a default slug for when no category\u002Ftaxonomy is selected by using \u003Ccode>??\u003C\u002Fcode> (e.g., \u003Ccode>%ctax_type??sales%\u003C\u002Fcode> will use “sales” as a default).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%ctax_parent_TAXONOMY_NAME%\u003C\u002Fstrong>: Similar to \u003Ccode>%ctax_TAXONOMY_NAME%\u003C\u002Fcode>, but includes the immediate parent category\u002Ftag slug in the URL if a parent is selected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%ctax_parents_TAXONOMY_NAME%\u003C\u002Fstrong>: Similar to \u003Ccode>%ctax_TAXONOMY_NAME%\u003C\u002Fcode>, but includes all parent category\u002Ftag slugs in the URL if parents are selected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>%custom_permalinks_TAG_NAME%\u003C\u002Fstrong>: Developers have the flexibility to define their own custom tags(replace \u003Ccode>_TAG_NAME\u003C\u002Fcode> with your desired name). To ensure these tags resolve to the correct permalinks, simply apply the \u003Ccode>custom_permalinks_post_permalink_tag\u003C\u002Fcode> filter.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Important Note:\u003C\u002Fstrong> For new posts, Custom Permalinks will keep updating the permalink while the post is in draft mode, assuming a structure is defined in the plugin settings. Once the post is published or its permalink is manually updated, the plugin will stop automatic updates for that specific post.\u003C\u002Fp>\n\u003Ch3>Custom Permalinks: Fine-Tuning with Filters\u003C\u002Fh3>\n\u003Cp>Custom Permalinks offers a range of \u003Cstrong>filters\u003C\u002Fstrong> that empower developers to precisely control its behavior. You can explore all available filters, complete with example code snippets, in our \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsamiahmedsiddiqui\u002Fcustom-permalinks\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>For Assistance:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Premium Users:\u003C\u002Fstrong> If you need assistance implementing these filters, please don’t hesitate to reach out to us via our \u003Ca href=\"https:\u002F\u002Fwww.custompermalinks.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Premium contact support\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Other Users:\u003C\u002Fstrong> You can also directly reach out to the plugin author via \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsami-ahmed-siddiqui\u002F\" rel=\"nofollow ugc\">LinkedIn\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Need Help or Found a Bug?\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Support:\u003C\u002Fstrong> For one-on-one email support, consider purchasing \u003Ca href=\"https:\u002F\u002Fwww.custompermalinks.com\u002F#pricing-section\" rel=\"nofollow ugc\">Custom Permalinks Premium\u003C\u002Fa>. While some basic support may be provided on the WordPress.org forums, email support is prioritized for premium users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bug Reports:\u003C\u002Fstrong> If you encounter a bug, please report it on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsamiahmedsiddiqui\u002Fcustom-permalinks\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>. Make sure to provide complete information to reproduce the issue. GitHub is for bug reports, not general support questions.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you experience any site-breaking issues after upgrading, please report them on the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fcustom-permalinks\u002F\" rel=\"ugc\">WordPress Forum\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsamiahmedsiddiqui\u002Fcustom-permalinks\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> with detailed information. You can always revert to an older version by downloading it from \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-permalinks\u002Fadvanced\u002F\" rel=\"ugc\">https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-permalinks\u002Fadvanced\u002F\u003C\u002Fa>.\u003C\u002Fp>\n","A powerful WordPress plugin for full URL control. Set custom permalinks, auto-redirects, and use dynamic tags for ideal site structure and SEO.",100000,2526567,116,"2025-10-08T12:56:00.000Z","6.8.5","2.6","7.0",[20,22,23,78,24],"redirect","https:\u002F\u002Fwww.custompermalinks.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-permalinks.3.1.2.zip",97,3,"2024-08-23 00:00:00",{"slug":85,"name":86,"version":87,"author":88,"author_profile":89,"description":90,"short_description":91,"active_installs":92,"downloaded":93,"rating":94,"num_ratings":95,"last_updated":96,"tested_up_to":97,"requires_at_least":98,"requires_php":18,"tags":99,"homepage":103,"download_link":104,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"remove-category-url","Remove Category URL – Remove 'category' base from category permalinks","1.2.1","Themeisle","https:\u002F\u002Fprofiles.wordpress.org\u002Fthemeisle\u002F","\u003Cp>Remove Category URL strips the \u003Ccode>\u002Fcategory\u002F\u003C\u002Fcode> base from your category URLs, turning something like \u003Ccode>\u002Fcategory\u002Fmy-category\u002F\u003C\u002Fcode> into simply \u003Ccode>\u002Fmy-category\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Just activate, and you’re done. No configuration needed.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Creates cleaner URLs like \u003Ccode>mydomain.com\u002Fmy-category\u002F\u003C\u002Fcode> and \u003Ccode>mydomain.com\u002Fmy-category\u002Fmy-post\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Works out of the box with no settings to configure\u003C\u002Fli>\n\u003Cli>Supports multiple sub-categories\u003C\u002Fli>\n\u003Cli>Automatically 301 redirects old category URLs to the new structure (SEO-friendly)\u003C\u002Fli>\n\u003Cli>Sitemaps are automatically updated with the new URLs after activation\u003C\u002Fli>\n\u003Cli>Compatible with WordPress Multisite, WPML, and popular sitemap plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Why remove \u002Fcategory\u002F from URLs?\u003C\u002Fh3>\n\u003Cp>The \u003Ccode>\u002Fcategory\u002F\u003C\u002Fcode> base in WordPress URLs is there by default, but it doesn’t help your visitors or search engines understand your content any better. When you remove \u003Ccode>\u002Fcategory\u002F\u003C\u002Fcode> from URLs, you get cleaner paths like \u003Ccode>mydomain.com\u002Fnews\u002F\u003C\u002Fcode> instead of \u003Ccode>mydomain.com\u002Fcategory\u002Fnews\u002F\u003C\u002Fcode>. They’re shorter, easier to remember and share, and more consistent with how your pages are already structured.\u003C\u002Fp>\n\u003Cp>Shorter URLs also tend to look better in search results and make your site feel more polished overall. Removing the category base is a small change that makes your whole URL structure cleaner.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>We’re here to help. Feel free to open a new thread on the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fremove-category-url\u002F\" rel=\"ugc\">Support Forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Useful Resources\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>If you like this plugin, you’re sure to love \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fwordpress-plugins\u002F\" rel=\"nofollow ugc\">our other plugins\u003C\u002Fa> as well.\u003C\u002Fli>\n\u003Cli>Our blog is a great place to \u003Ca href=\"https:\u002F\u002Fthemeisle.com\u002Fblog\u002F\" rel=\"nofollow ugc\">learn more about WordPress\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Get the most out of your website with our helpful \u003Ca href=\"https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PLmRasCVwuvpSep2MOsIoE0ncO9JE3FcKP\" rel=\"nofollow ugc\">WordPress YouTube Tutorials\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n","Remove Category URL strips the \u002Fcategory\u002F base from your category URLs, turning something like \u002Fcategory\u002Fmy-category\u002F into simply \u002Fmy-category\u002F.",50000,479177,84,58,"2026-01-12T14:02:00.000Z","6.9.4","3.1",[63,100,101,102,85],"permalinks","remove-category-base","remove-category-prefix","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fremove-category-url\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fremove-category-url.1.2.1.zip",{"slug":106,"name":107,"version":108,"author":109,"author_profile":110,"description":111,"short_description":112,"active_installs":113,"downloaded":114,"rating":27,"num_ratings":115,"last_updated":116,"tested_up_to":97,"requires_at_least":117,"requires_php":56,"tags":118,"homepage":120,"download_link":121,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"custom-permalink-editor","Custom Permalink Editor","1.0.6","Kings Crest Global","https:\u002F\u002Fprofiles.wordpress.org\u002Fteamkcg\u002F","\u003Cp>Custom Permalink Editor is a powerful yet simple plugin that allows you to create SEO-friendly custom URLs for your WordPress posts and pages. Perfect for content creators, marketers, and site owners who want complete control over their permalink structure.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>✓ \u003Cstrong>Easy Permalink Customization\u003C\u002Fstrong> – Change URLs for individual posts and pages with just a few clicks\u003Cbr \u002F>\n✓ \u003Cstrong>SEO-Friendly URLs\u003C\u002Fstrong> – Create clean, readable URLs that improve your search engine rankings\u003Cbr \u002F>\n✓ \u003Cstrong>No Global Changes\u003C\u002Fstrong> – Customize permalinks per post\u002Fpage without affecting your site’s default permalink structure\u003Cbr \u002F>\n✓ \u003Cstrong>Safe & Reversible\u003C\u002Fstrong> – Deactivating the plugin reverts all posts back to their default WordPress permalinks\u003Cbr \u002F>\n✓ \u003Cstrong>Categories & Tags Support\u003C\u002Fstrong> – Edit permalinks for categories and tags as well\u003Cbr \u002F>\n✓ \u003Cstrong>Custom Post Type Support\u003C\u002Fstrong> – Existing custom permalinks for custom post types continue to work (Pro version required for editing)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How It Works:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Install and activate the plugin\u003C\u002Fli>\n\u003Cli>Edit any post or page\u003C\u002Fli>\n\u003Cli>Find the Custom Permalink Editor box\u003C\u002Fli>\n\u003Cli>Enter your desired custom URL\u003C\u002Fli>\n\u003Cli>Save and publish – your new permalink is live!\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Perfect For:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Blog posts with specific keyword requirements\u003C\u002Fli>\n\u003Cli>Landing pages with marketing-friendly URLs\u003C\u002Fli>\n\u003Cli>Portfolio items with branded permalinks\u003C\u002Fli>\n\u003Cli>Product pages with clean, memorable URLs\u003C\u002Fli>\n\u003Cli>Migrating content from other platforms while maintaining URL structure\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Need help or have questions? We’re here to assist you!\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Support Requests\u003C\u002Fstrong>: Use our \u003Ca href=\"https:\u002F\u002Fkingscrestglobal.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">contact form\u003C\u002Fa> for technical support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Modifications\u003C\u002Fstrong>: Contact us for any custom development needs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Feedback\u003C\u002Fstrong>: We value your feedback and suggestions for improvements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pro Version\u003C\u002Fstrong>: Interested in premium features? \u003Ca href=\"https:\u002F\u002Fkingscrestglobal.com\u002Fcontact\u002F\" rel=\"nofollow ugc\">Get in touch\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cblockquote>\n\u003Cp>This plugin does not collect any user Information\u003Cbr \u002F>\n  If you need any custom modification or any other thing contact with https:\u002F\u002Fkingscrestglobal.com\u002F and mention Custom Permalink Editor\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>Advanced Filters\u003C\u002Fh3>\n\u003Cp>For developers who need more control, Custom Permalink Editor provides several filters to customize its behavior.\u003C\u002Fp>\n\u003Ch4>Add PATH_INFO in $_SERVER Variable\u003C\u002Fh4>\n\u003Cp>Enable PATH_INFO support in the $_SERVER variable. This is useful for certain server configurations.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Usage:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'cp_editor_path_info', '__return_true' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Exclude Specific Permalinks\u003C\u002Fh4>\n\u003Cp>Prevent specific permalinks from being processed by the plugin. Useful for excluding system files like sitemaps or special pages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong> Exclude sitemap.xml from processing\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function team_kcg_exclude_permalink( $permalink ) {\n  \u002F\u002F Check if permalink contains 'sitemap.xml'\n  if ( false !== strpos( $permalink, 'sitemap.xml' ) ) {\n    return '__true';\n  }\n\n  return;\n}\nadd_filter( 'cp_editor_exclude_permalink', 'team_kcg_exclude_permalink' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Exclude Specific Post Types\u003C\u002Fh4>\n\u003Cp>Remove the Custom Permalink Editor form from specific post types. Helpful if you want to disable the feature for certain content types.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong> Exclude a custom post type called ‘custompost’\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function team_kcg_exclude_post_type( $post_type ) {\n  \u002F\u002F Replace 'custompost' with your actual post type name\n  if ( 'custompost' === $post_type ) {\n    return '__true';\n  }\n\n  return '__false';\n}\nadd_filter( 'cp_editor_exclude_post_type', 'team_kcg_exclude_post_type' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Exclude Specific Posts\u003C\u002Fh4>\n\u003Cp>Exclude individual posts or pages from showing the Custom Permalink Editor form. You can filter by ID, template, or any post property.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong> Exclude post with ID 1557\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function team_kcg_exclude_posts( $post ) {\n  \u002F\u002F Exclude specific post by ID\n  if ( 1557 === $post->ID ) {\n    return true;\n  }\n\n  \u002F\u002F You can also exclude by other criteria\n  \u002F\u002F Example: Exclude posts with a specific template\n  \u002F\u002F if ( get_page_template_slug( $post->ID ) === 'template-landing.php' ) {\n  \u002F\u002F   return true;\n  \u002F\u002F }\n\n  return false;\n}\nadd_filter( 'cp_editor_exclude_posts', 'team_kcg_exclude_posts' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Allow Accented Characters\u003C\u002Fh4>\n\u003Cp>By default, the plugin removes accents from permalinks for better URL compatibility. Enable this filter if you need to preserve accented characters.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Usage:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function team_kcg_allow_accents() {\n  return true;\n}\nadd_filter( 'cp_editor_allow_accents', 'team_kcg_allow_accents' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Allow Capital Letters\u003C\u002Fh4>\n\u003Cp>By default, permalinks are converted to lowercase. Use this filter to preserve capital letters in your custom URLs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Usage:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function team_kcg_allow_capitals() {\n  return true;\n}\nadd_filter( 'cp_editor_allow_caps', 'team_kcg_allow_capitals' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> Add these code snippets to your theme’s \u003Ccode>functions.php\u003C\u002Fcode> file or use a custom plugin\u002Fcode snippets plugin.\u003C\u002Fp>\n\u003Ch3>How To Use\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Changing a Post or Page Permalink:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate to Posts > All Posts (or Pages > All Pages)\u003C\u002Fli>\n\u003Cli>Click on the post\u002Fpage you want to edit\u003C\u002Fli>\n\u003Cli>Scroll down to find the “Custom Permalink Editor” meta box\u003C\u002Fli>\n\u003Cli>Enter your desired custom URL in the text field (without the domain)\u003C\u002Fli>\n\u003Cli>Click “Update” or “Publish” to save your changes\u003C\u002Fli>\n\u003Cli>Visit your post to see the new permalink in action!\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Example:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Default URL: \u003Ccode>yoursite.com\u002F2026\u002F01\u002F11\u002Fmy-blog-post\u002F\u003C\u002Fcode>\u003Cbr \u002F>\n– Custom URL: \u003Ccode>yoursite.com\u002Fseo-friendly-custom-url\u002F\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Reverting to Default Permalinks:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Simply deactivate the plugin and all posts will automatically revert to WordPress default permalink structure.\u003C\u002Fp>\n","Set Custom Permalink Editor on a per-post, per-tag per-page, and per-category basis.",3000,11220,2,"2026-01-13T10:09:00.000Z","5.4",[63,119,23,100,24],"custom-url","https:\u002F\u002Fkingscrestglobal.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-permalink-editor.1.0.6.zip",{"slug":123,"name":124,"version":125,"author":126,"author_profile":127,"description":128,"short_description":129,"active_installs":130,"downloaded":131,"rating":61,"num_ratings":34,"last_updated":132,"tested_up_to":133,"requires_at_least":134,"requires_php":135,"tags":136,"homepage":139,"download_link":140,"security_score":141,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"custom-fields-permalink-redux","Custom Fields Permalink 2","1.5.0","athlan","https:\u002F\u002Fprofiles.wordpress.org\u002Fathlan\u002F","\u003Cp>Plugin allows to use post’s custom fields values in permalink structure by adding \u003Ccode>%field_fieldname%\u003C\u002Fcode> rewrite tag.\u003C\u002Fp>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>http:\u002F\u002Fexample.com\u002F%field_event_date_from%\u002F%postname%\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>http:\u002F\u002Fexample.com\u002Fpost-type\u002F%field_event_date_from%\u002F%postname%\u002F\u003C\u002Fcode> (with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-post-type-permalinks\u002F\" rel=\"ugc\">Custom Post Type Permalinks\u003C\u002Fa> plugin)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can also set different permalink structure depending on custom post type using \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-post-type-permalinks\u002F\" rel=\"ugc\">Custom Post Type Permalinks\u003C\u002Fa> plugin. You can create own post types by using \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcustom-post-type-ui\u002F\" rel=\"ugc\">Custom Post Type UI\u003C\u002Fa> plugin.\u003C\u002Fp>\n\u003Cp>The plugin works for:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>posts\u003C\u002Fli>\n\u003Cli>pages\u003C\u002Fli>\n\u003Cli>custom post types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Plugin is also available on GitHub:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fathlan\u002Fwordpress-custom-fields-permalink-plugin\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fathlan\u002Fwordpress-custom-fields-permalink-plugin\u003C\u002Fa>\u003C\u002Fp>\n","Plugin allows to use post's custom fields values in permalink structure by adding %field_fieldname%, for posts, pages and custom post types.",600,7449,"2018-10-24T19:38:00.000Z","5.0.25","4.5.0","5.3",[137,138,23,100,24],"custom-fields","custom-post-types","http:\u002F\u002Fathlan.pl\u002Fwordpress-custom-fields-permalink-plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-fields-permalink-redux.1.5.0.zip",85,{"attackSurface":143,"codeSignals":274,"taintFlows":314,"riskAssessment":399,"analyzedAt":411},{"hooks":144,"ajaxHandlers":270,"restRoutes":271,"shortcodes":272,"cronEvents":273,"entryPointCount":28,"unprotectedCount":28},[145,152,157,161,165,168,172,176,178,182,184,187,191,194,198,200,202,204,206,208,210,212,216,220,224,228,231,234,238,241,245,249,252,255,259,263,266],{"type":146,"name":147,"callback":148,"priority":149,"file":150,"line":151},"filter","request","custom_permalinks_request",10,"enh-custom-permalinks.php",304,{"type":153,"name":154,"callback":155,"priority":149,"file":150,"line":156},"action","admin_notices","custom_permalink_conflict_notice",512,{"type":153,"name":158,"callback":159,"file":150,"line":160},"admin_head","custom_permalink_trigger_conflict_check",516,{"type":146,"name":162,"callback":163,"priority":149,"file":150,"line":164},"post_link","custom_permalinks_post_link",788,{"type":146,"name":166,"callback":163,"priority":149,"file":150,"line":167},"post_type_link",789,{"type":146,"name":169,"callback":170,"priority":149,"file":150,"line":171},"user_trailingslashit","custom_permalinks_trailingslash",803,{"type":146,"name":173,"callback":174,"priority":149,"file":150,"line":175},"page_link","custom_permalinks_page_link",804,{"type":146,"name":169,"callback":170,"priority":149,"file":150,"line":177},819,{"type":146,"name":179,"callback":180,"priority":149,"file":150,"line":181},"tag_link","custom_permalinks_term_link",820,{"type":146,"name":169,"callback":170,"priority":149,"file":150,"line":183},834,{"type":146,"name":185,"callback":180,"priority":149,"file":150,"line":186},"category_link",835,{"type":146,"name":188,"callback":189,"priority":149,"file":150,"line":190},"cac\u002Fcolumns\u002Fcustom\u002Ftype=post","cac_register_custom_permalink_column",888,{"type":146,"name":192,"callback":189,"priority":149,"file":150,"line":193},"cac\u002Fcolumns\u002Fcustom\u002Ftype=page",889,{"type":153,"name":195,"callback":196,"priority":34,"file":150,"line":197},"template_redirect","custom_permalinks_redirect",900,{"type":146,"name":162,"callback":163,"priority":149,"file":150,"line":199},901,{"type":146,"name":166,"callback":163,"priority":149,"file":150,"line":201},902,{"type":146,"name":173,"callback":174,"priority":149,"file":150,"line":203},903,{"type":146,"name":179,"callback":180,"priority":149,"file":150,"line":205},904,{"type":146,"name":185,"callback":180,"priority":149,"file":150,"line":207},905,{"type":146,"name":147,"callback":148,"priority":149,"file":150,"line":209},906,{"type":146,"name":169,"callback":170,"priority":149,"file":150,"line":211},907,{"type":146,"name":213,"callback":214,"priority":149,"file":150,"line":215},"get_sample_permalink_html","custom_permalink_get_sample_permalink_html",914,{"type":153,"name":217,"callback":218,"file":150,"line":219},"edit_form_advanced","custom_permalinks_post_options",916,{"type":153,"name":221,"callback":222,"file":150,"line":223},"edit_page_form","custom_permalinks_page_options",917,{"type":153,"name":225,"callback":226,"file":150,"line":227},"edit_tag_form","custom_permalinks_term_options",920,{"type":153,"name":229,"callback":226,"file":150,"line":230},"add_tag_form",921,{"type":153,"name":232,"callback":226,"file":150,"line":233},"edit_category_form",922,{"type":153,"name":235,"callback":236,"file":150,"line":237},"save_post","custom_permalinks_save_post",923,{"type":153,"name":239,"callback":236,"file":150,"line":240},"save_page",924,{"type":153,"name":242,"callback":243,"file":150,"line":244},"edited_post_tag","custom_permalinks_save_tag",925,{"type":153,"name":246,"callback":247,"file":150,"line":248},"edited_category","custom_permalinks_save_category",926,{"type":153,"name":250,"callback":243,"file":150,"line":251},"create_post_tag",927,{"type":153,"name":253,"callback":247,"file":150,"line":254},"create_category",928,{"type":153,"name":256,"callback":257,"priority":149,"file":150,"line":258},"delete_post","custom_permalinks_delete_permalink",929,{"type":153,"name":260,"callback":261,"file":150,"line":262},"delete_post_tag","custom_permalinks_delete_term",930,{"type":153,"name":264,"callback":261,"file":150,"line":265},"delete_post_category",931,{"type":153,"name":267,"callback":268,"file":150,"line":269},"admin_menu","custom_permalinks_setup_admin",932,[],[],[],[],{"dangerousFunctions":275,"sqlUsage":276,"outputEscaping":279,"fileOperations":28,"externalRequests":28,"nonceChecks":312,"capabilityChecks":28,"bundledLibraries":313},[],{"prepared":277,"raw":28,"locations":278},7,[],{"escaped":280,"rawEcho":281,"locations":282},8,16,[283,286,288,290,292,293,295,297,299,301,303,304,306,308,309,310],{"file":150,"line":284,"context":285},472,"raw output",{"file":150,"line":287,"context":285},480,{"file":150,"line":289,"context":285},481,{"file":150,"line":291,"context":285},484,{"file":150,"line":291,"context":285},{"file":150,"line":294,"context":285},502,{"file":150,"line":296,"context":285},653,{"file":150,"line":298,"context":285},662,{"file":150,"line":300,"context":285},693,{"file":150,"line":302,"context":285},694,{"file":150,"line":302,"context":285},{"file":150,"line":305,"context":285},695,{"file":150,"line":307,"context":285},696,{"file":150,"line":307,"context":285},{"file":150,"line":307,"context":285},{"file":150,"line":311,"context":285},697,1,[],[315,334,353,379,389],{"entryPoint":316,"graph":317,"unsanitizedCount":312,"severity":333},"custom_permalinks_redirect (enh-custom-permalinks.php:81)",{"nodes":318,"edges":330},[319,324],{"id":320,"type":321,"label":322,"file":150,"line":323},"n0","source","$_SERVER",120,{"id":325,"type":326,"label":327,"file":150,"line":328,"wp_function":329},"n1","sink","wp_redirect() [Open Redirect]",122,"wp_redirect",[331],{"from":320,"to":325,"sanitized":332},false,"medium",{"entryPoint":335,"graph":336,"unsanitizedCount":28,"severity":352},"custom_permalinks_options_page (enh-custom-permalinks.php:630)",{"nodes":337,"edges":348},[338,340,343,346],{"id":320,"type":321,"label":322,"file":150,"line":339},650,{"id":325,"type":326,"label":341,"file":150,"line":296,"wp_function":342},"echo() [XSS]","echo",{"id":344,"type":321,"label":345,"file":150,"line":298},"n2","$_SERVER['REQUEST_URI']",{"id":347,"type":326,"label":341,"file":150,"line":298,"wp_function":342},"n3",[349,351],{"from":320,"to":325,"sanitized":350},true,{"from":344,"to":347,"sanitized":350},"low",{"entryPoint":354,"graph":355,"unsanitizedCount":28,"severity":352},"\u003Cenh-custom-permalinks> (enh-custom-permalinks.php:0)",{"nodes":356,"edges":374},[357,358,359,362,366,368,370,372],{"id":320,"type":321,"label":322,"file":150,"line":323},{"id":325,"type":326,"label":327,"file":150,"line":328,"wp_function":329},{"id":344,"type":321,"label":360,"file":150,"line":361},"$_GET (x2)",145,{"id":347,"type":326,"label":363,"file":150,"line":364,"wp_function":365},"get_results() [SQLi]",161,"get_results",{"id":367,"type":321,"label":322,"file":150,"line":339},"n4",{"id":369,"type":326,"label":341,"file":150,"line":296,"wp_function":342},"n5",{"id":371,"type":321,"label":345,"file":150,"line":298},"n6",{"id":373,"type":326,"label":341,"file":150,"line":298,"wp_function":342},"n7",[375,376,377,378],{"from":320,"to":325,"sanitized":350},{"from":344,"to":347,"sanitized":350},{"from":367,"to":369,"sanitized":350},{"from":371,"to":373,"sanitized":350},{"entryPoint":380,"graph":381,"unsanitizedCount":312,"severity":388},"custom_permalinks_content_list_verify (enh-custom-permalinks.php:132)",{"nodes":382,"edges":386},[383,385],{"id":320,"type":321,"label":384,"file":150,"line":361},"$_GET",{"id":325,"type":326,"label":363,"file":150,"line":364,"wp_function":365},[387],{"from":320,"to":325,"sanitized":332},"high",{"entryPoint":390,"graph":391,"unsanitizedCount":312,"severity":388},"custom_permalinks_request (enh-custom-permalinks.php:192)",{"nodes":392,"edges":397},[393,395],{"id":320,"type":321,"label":384,"file":150,"line":394},215,{"id":325,"type":326,"label":363,"file":150,"line":396,"wp_function":365},232,[398],{"from":320,"to":325,"sanitized":332},{"summary":400,"deductions":401},"The \"enhanced-custom-permalinks\" v0.1.1 plugin exhibits a mixed security posture. On the positive side, the plugin has a very small attack surface, with no exposed AJAX handlers, REST API routes, shortcodes, or cron events. It also utilizes prepared statements for all its SQL queries and performs nonce checks, indicating an awareness of common WordPress security practices.  The absence of known CVEs and historical vulnerabilities is also a positive sign. \n\nHowever, significant concerns arise from the taint analysis. The presence of 3 flows with unsanitized paths, including 2 of high severity, suggests potential vulnerabilities where user-supplied data might be processed without proper sanitization, leading to risks like path traversal or file inclusion if these flows involve file operations or external requests (though those are absent in this static analysis).  Furthermore, the output escaping is only properly implemented for 33% of outputs, leaving a substantial portion of the plugin's output potentially vulnerable to Cross-Site Scripting (XSS) attacks. The lack of capability checks on entry points, while the attack surface is currently zero, could become a risk if new entry points are introduced in future versions without proper authorization checks.\n\nIn conclusion, while the plugin starts with a good foundation of minimal attack surface and secure SQL practices, the identified taint flow issues and the low rate of proper output escaping present notable security risks. The lack of vulnerability history is reassuring but does not negate the immediate concerns highlighted by the static analysis. Addressing the unsanitized paths and improving output escaping should be prioritized.",[402,405,407,409],{"reason":403,"points":404},"High severity taint flow",12,{"reason":406,"points":280},"Unsanitized paths in taint flows",{"reason":408,"points":280},"Low percentage of properly escaped output",{"reason":410,"points":34},"No capability checks on entry points","2026-03-16T18:53:35.542Z",{"wat":413,"direct":418},{"assetPaths":414,"generatorPatterns":415,"scriptPaths":416,"versionParams":417},[],[],[],[],{"cssClasses":419,"htmlComments":420,"htmlAttributes":421,"restEndpoints":423,"jsGlobals":424,"shortcodeOutput":425},[],[],[422],"custom_permalink",[],[],[]]