| 开发者 |
sasiddiqui
michaeltyson |
|---|---|
| 更新时间 | 2026年10月13日 21:16 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv3 |
| 版权网址: | 版权信息 |
custom-permalinks folder.custom-permalinks folder to your /wp-content/plugins/ directory.Custom Permalinks automatically redirects the original (default) URL to your new custom permalink, so existing links, bookmarks, and search engine rankings keep working.
It shouldn't hurt it — since the original URL redirects to the new one, search engines and existing backlinks continue to resolve correctly. Using clean, descriptive custom permalinks can also make your URLs more readable, which is generally good for SEO.
Yes. Custom Permalinks supports posts, pages, any public custom post type, and categories/tags (and other custom taxonomy terms).
Yes. You can set an individual custom permalink on any public custom post type, or define an automatic permalink structure for the entire post type from Custom Permalinks > Post Types Settings.
Yes, the plugin is compatible with both WPML and Polylang, including translated posts that each have their own custom permalink.
Yes. Permalinks in non-Latin scripts, such as Arabic, Thai, Cyrillic, or Chinese, work as you type them. Browsers request these URLs percent-encoded, and Custom Permalinks matches them either way.
From translate.wordpress.org. WordPress downloads them automatically for your site's language. If the plugin shows in English on a translated site, update the translations from Dashboard > Updates. You can also help translate it there.
Yes. The plugin adds a dedicated Custom Permalinks Manager role (and matching capabilities) so you can let specific non-admin users view or edit permalinks without giving them full administrator access.
By default, Custom Permalinks sanitizes permalinks the same way WordPress core does (lowercase, no accents, no repeated hyphens). Developers can lift these restrictions with the custom_permalinks_allow_accents, custom_permalinks_allow_caps, and custom_permalinks_redundant_hyphens filters. See the Advanced Customization and Filters section on GitHub.
Some page builders load their live/front-end preview in an iframe using a POST request carrying special values the builder needs (for example Cornerstone's cs_preview_time). If that page also has a custom permalink, Custom Permalinks may redirect the request, and since redirects are followed as GET, the builder's POST data is lost and the preview breaks.
You can tell Custom Permalinks to skip its redirect for that request with the custom_permalinks_avoid_redirect filter, added to your theme or a site-specific plugin:
add_filter( 'custom_permalinks_avoid_redirect', function( $permalink ) { if ( isset( $_POST['cs_preview_time'] ) ) { // Adjust to match the field your builder sends. return true; } return false; } );
See the Advanced Customization and Filters section on GitHub for this and other available filters.
Deactivating the plugin keeps all your saved custom permalinks in the database — reactivating it restores them immediately. Uninstalling (deleting) the plugin permanently removes all saved custom permalinks and plugin settings, and your URLs will revert to WordPress' default permalink structure.
product/ page for product/سلام/), a regression in 3.3.0./سلام/feed/).?, + or ( (e.g. ?p=123 for drafts).%ctax_parents_TAXONOMY_NAME_name% now uses the parent terms' names, as documented, instead of their slugs. Permalinks generated from now on change where a parent term's name differs from its slug; saved permalinks are not changed./news/page/2 redirected to /news/ instead of /news/page/2/).custom_permalinks_disable_remove_page_number filter to keep the /page/{number} segment in the requested URL, for custom archive pages whose pagination doesn't advance.foo=bar became http://foo=bar) after a custom permalink was resolved./my-post/comment-page-2/) not following the custom permalink's trailing slash, so a custom permalink without a trailing slash no longer gets comment URLs with one, and vice versa./en/, /de/) and the translation uses the same custom permalink./de-de/ for de, as in WPML 5.0) not being repaired when duplicated, and the default language getting its directory added to a permalink when "hide the default language directory" is on.en-us)./en/technology and /zh/technology) redirecting to the other language when the translation's stored language was missing or out of date.wp_cache_flush_group() needs WordPress 6.1. Object caches that can't flush a single group now get a full cache flush.WC_Order object.seems_utf8() deprecation notice on WordPress 6.9 and later.