Custom Permalinks


Lay out your site the way you want it. Set the URL of any post, page, tag or category to anything you want. Old permalinks will redirect properly to the new address. Custom Permalinks give you ultimate control over your site structure.

Be warned: This plugin is not a replacement for WordPress’s built-in permalink system. Check your WordPress administration’s “Permalinks” settings page first, to make sure that this doesn’t already meet your needs.

This plugin is only useful for assigning custom permalinks for individual posts, pages, tags or categories. It will not apply whole permalink structures or automatically apply a category’s custom permalink to the posts within that category.

If anyone wants the different Structure Tags for their Post types or use symbols in the URLs So, use the Permalinks Customizer which is a fork of this plugin and contains the enhancement of this plugin.

Unsupported Characters

Following characters are no longer allowed in the permalinks.

  • <
  • >
  • {
  • }
  • |
  • “`
  • ^
  • \
  • (
  • )
  • [
  • ]

Permalinks created previously using any of these characters will not be affected in anyway. However, new permalinks will not support the use of these characters as they are not considered to be safe.

Privacy Policy

This plugin only collects the following information.

  1. Administration Email Address (Only the email that is set in the WordPress setting)
  2. Plugin version
  3. Site Title
  4. WordPress Address (URL)
  5. WordPress version

All this information gets collected when the plugin is installed or updated.

To have any kind of query please feel free to contact us.


Add `PATH_INFO` in `$_SERVER` Variable

add_filter( 'custom_permalinks_path_info', '__return_true' );

Disable redirects

To disable complete redirects functionality provided by this plugin, add the filter that looks like this:

function yasglobal_avoid_redirect( $permalink )
    return true;
add_filter( 'custom_permalinks_avoid_redirect', 'yasglobal_avoid_redirect' );

Disable specific redirects

To disable any specific redirect to be processed by this plugin, add the filter that looks like this:

function yasglobal_avoid_redirect( $permalink )
    // Replace 'testing-hello-world/' with the permalink you want to avoid
    if ( 'testing-hello-world/' === $permalink ) {
        return true;

    return false;
add_filter( 'custom_permalinks_avoid_redirect', 'yasglobal_avoid_redirect' );

Exclude permalink to be processed

To exclude any Permalink to be processed by the plugin, add the filter that looks like this:

function yasglobal_xml_sitemap_url( $permalink )
    if ( false !== strpos( $permalink, 'sitemap.xml' ) ) {
        return '__true';

add_filter( 'custom_permalinks_request_ignore', 'yasglobal_xml_sitemap_url' );

Exclude Post Type

To remove custom permalink form from any post type, add the filter that looks like this:

function yasglobal_exclude_post_types( $post_type )
    // Replace 'custompost' with your post type name
    if ( 'custompost' === $post_type ) {
        return '__true';

    return '__false';
add_filter( 'custom_permalinks_exclude_post_type', 'yasglobal_exclude_post_types' );

Exclude Posts

To exclude custom permalink form from any posts (based on ID, Template, etc), add the filter that looks like this:

function yasglobal_exclude_posts( $post )
    if ( 1557 === $post->ID ) {
        return true;

    return false;
add_filter( 'custom_permalinks_exclude_posts', 'yasglobal_exclude_posts' );

Remove `like` query

To remove like query to being work, add below-mentioned line in your theme functions.php:

add_filter( 'cp_remove_like_query', '__return_false' );

Note: Use custom_permalinks_like_query filter if the URLs doesn’t works for you after upgrading to v1.2.9.

Thanks for the Support

I do not always provide active support for the Custom Permalinks plugin on the forums, as I have prioritized the email support.
One-on-one email support is available to people who bought Custom Permalinks Premium only.

Bug reports

Bug reports for Custom Permalinks are welcomed on GitHub. Please note GitHub is not a support forum, and issues that aren’t properly qualified as bugs will be closed.


This process defines you the steps to follow either you are installing through WordPress or Manually from FTP.

From within WordPress

  1. Visit ‘Plugins > Add New’
  2. Search for Custom Permalinks
  3. Activate Custom Permalinks from your Plugins page.


  1. Upload the custom-permalinks folder to the /wp-content/plugins/ directory
  2. Activate Custom Permalinks through the ‘Plugins’ menu in WordPress


28 ਸਤੰਬਰ 2020
Got a problem with a plugin and got the issue resolved with the creator in a matter of hours.
20 ਅਗਸਤ 2020
all i wanted to do was have the same /blog/ prefix to my urls for both category and posts AND remove the 'category' text from the url of my categories. Before /blog/category/example-category-name /blog/example-post-name After /blog/example-category-name /blog/example-post-name Saved me a purchase of permalink pro or writing a custom script to do this. hope this helps someone. Cheers
10 ਅਗਸਤ 2020
I've been using the "Custom Permalink" plugin for about 2 years. It has been a very reliable plugin that fulfills its objective. One of the things that most concerns you when installing a theme or plugin is its support. Be sure that in any eventuality there is timely help to get ahead. And this is precisely what has motivated me to write this review, because I am very satisfied with the support and the interaction of the author. Recommended 100%. So that's one of its strengths: The quality of technical support. Thank you
Read all 94 reviews

ਯੋਗਦਾਨੀ ਤੇ ਵਿਕਾਸਕਾਰ

“Custom Permalinks” is open source software. The following people have contributed to this plugin.


“Custom Permalinks” has been translated into 10 locales. Thank you to the translators for their contributions.

“Custom Permalinks” ਦਾ ਆਪਣੀ ਭਾਸ਼ਾ ਵਿੱਚ ਅਨੁਵਾਦ ਕਰੋ।

ਵਿਕਾਸ ਕਾਰਜ ਵਿੱਚ ਰੁਚੀ ਰੱਖਦੇ ਹੋ?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


1.7.1 – Aug 30, 2020

  • Bugs
    • Fix PHP notice (start reporting with WordPress 5.5)

1.7.0 – Aug 20, 2020

1.6.2 – Aug 10, 2020

  • Bugs
    • Forgot to update the version in CSS and JS files in v1.6.1

1.6.1 – Aug 10, 2020

  • Bugs
    • Avoid caching issue by adding version as suffix in CSS and JS files

1.6.0 – Aug 08, 2020

Earlier versions

  • For the changelog of earlier versions, please refer to the separate changelog.txt file.