Custom Permalinks

Descrición

Queres controlar as URL do teu sitio WordPress? O plugin Custom Permalinks dáche o poder de establecer URL personalizadas e únicas para calquera entrada, páxina, etiqueta ou categoría. Isto significa que podes deseñar a estrutura do teu sitio exactamente como a imaxinas, en lugar de estar limitado polos axustes por defecto de WordPress. Cando estableces unha ligazón permanente personalizada, a URL orixinal da entrada redirixirase automaticamente á túa nova URL personalizada.

Características principais

  • Unha URL personalizada para calquera contido: establece unha ligazón permanente única para calquera entrada, páxina, tipo de contido personalizado público (p. ex. produtos de WooCommerce), categoría, etiqueta ou termo de taxonomía personalizada.
  • Estruturas de ligazóns permanentes por tipo de contido: define unha estrutura para cada tipo de contido público a partir de etiquetas como %year%, %category% ou as túas taxonomías personalizadas. O contido novo recibe a súa ligazón permanente automaticamente, e aínda podes editar calquera ligazón permanente a man.
  • Redirecións automáticas: a URL orixinal redirixe á ligazón permanente personalizada, así que as ligazóns existentes, os marcadores e o posicionamento nas buscas seguen funcionando.
  • Multilingüe: funciona con WPML e Polylang, cunha ligazón permanente personalizada separada para cada tradución.
  • URL en calquera idioma: as ligazóns permanentes en alfabetos non latinos, como árabe, tailandés ou cirílico, funcionan tal como as escribes.
  • Todas as ligazóns permanentes nun só lugar: as pantallas Ligazóns permanentes dos tipos de contido e Ligazóns permanentes das taxonomías listan todas as ligazóns permanentes personalizadas, con busca e eliminación en bloque.
  • Un perfil para xestores de ligazóns permanentes: o perfil Custom Permalinks Manager permite que os non administradores vexan e editen ligazóns permanentes.
  • Amigable para desenvolvedores: filtros e accións para engadir as túas propias etiquetas, xerar ligazóns permanentes no código e controlar a sanitización e as redirecións.

Primeiros pasos: axustes do plugin

Custom Permalinks engade un menú Custom Permalinks ao teu escritorio de WordPress:

  • Ligazóns permanentes dos tipos de contido e Ligazóns permanentes das taxonomías: todas as ligazóns permanentes personalizadas do teu sitio, con busca e eliminación en bloque.
  • Axustes dos tipos de contido: unha estrutura de ligazón permanente para cada tipo de contido público, construída a partir das etiquetas de abaixo. Deixa a estrutura baleira para manter a de WordPress por defecto para ese tipo de contido.

Para establecer unha ligazón permanente para unha entrada, páxina, categoría ou etiqueta concreta, edita ese elemento e busca o campo Custom Permalink preto da parte superior (ou na barra lateral) da pantalla do editor: introduce a ruta da URL que queiras e garda.

Etiquetas dispoñibles para as estruturas de ligazóns permanentes

Ao configurar as estruturas das túas ligazóns permanentes personalizadas, podes usar varias etiquetas que completarán a URL de forma dinámica. Isto é o que está dispoñible:

  • %year%: O ano da entrada en catro díxitos, p. ex.: 2025
  • %monthnum%: Mes no que se publicou a entrada, en dous díxitos, p. ex.: 01
  • %day%: Día no que se publicou a entrada, en dous díxitos, p. ex.: 02
  • %hour%: Hora do día na que se publicou a entrada, p. ex.: 15
  • %minute%: Minuto da hora na que se publicou a entrada, p. ex.: 43
  • %second%: Segundo do minuto no que se publicou a entrada, p. ex.: 33
  • %post_id%: O ID único da entrada, p. ex.: 123
  • %category%: Unha versión limpa do nome da categoría (o seu slug). As subcategorías aniñadas aparecerán como directorios aniñados na URL.
  • %author%: o nome de usuario (nome de acceso) do autor da entrada. Ten en conta que isto fai visibles os nomes de usuario nas túas URL.
  • %postname%: Unha versión limpa do título da entrada ou páxina (o seu slug). Por exemplo, «This Is A Great Post!» convértese en this-is-a-great-post na URL.
  • %parent_postname%: Semellante a %postname%, pero usa o slug da páxina superior inmediata se hai unha superior seleccionada.
  • %parents_postnames%: Semellante a %postname%, pero inclúe os slugs de todas as páxinas superiores se hai superiores seleccionadas.
  • %title%: O título da entrada, convertido en slug. Por exemplo, «This Is A Great Post!» convértese en this-is-a-great-post. A diferenza de %postname%, que se establece unha soa vez, %title% actualízase automaticamente na ligazón permanente se cambia o título da entrada (salvo que a entrada estea publicada ou a ligazón permanente se editase manualmente).
  • %ctax_TAXONOMY_NAME%: unha versión limpa do nome dunha taxonomía personalizada. Substitúe TAXONOMY_NAME polo nome real da taxonomía.
  • %ctax_TAXONOMY_NAME_name%: o nome do termo da taxonomía personalizada (en lugar do seu slug). Substitúe TAXONOMY_NAME polo nome real da taxonomía.
  • %ctax_parent_TAXONOMY_NAME%: Semellante a %ctax_TAXONOMY_NAME%, pero inclúe na URL o slug da categoría/etiqueta superior inmediata se hai un superior seleccionado.
  • %ctax_parent_TAXONOMY_NAME_name%: Semellante a %ctax_TAXONOMY_NAME_name%, pero inclúe o nome do termo superior inmediato se hai un superior seleccionado.
  • %ctax_parents_TAXONOMY_NAME%: Semellante a %ctax_TAXONOMY_NAME%, pero inclúe na URL os slugs de todas as categorías/etiquetas superiores se hai superiores seleccionados.
  • %ctax_parents_TAXONOMY_NAME_name%: Semellante a %ctax_TAXONOMY_NAME_name%, pero inclúe os nomes de todos os termos superiores se hai superiores seleccionados.
  • %custom_permalinks_TAG_NAME%: Os desenvolvedores teñen a flexibilidade de definir as súas propias etiquetas personalizadas (substitúe _TAG_NAME polo nome que queiras). Para asegurar que estas etiquetas se resolvan nas ligazóns permanentes correctas, simplemente aplica o filtro custom_permalinks_post_permalink_tag.

Nota importante: Para as entradas novas, Custom Permalinks seguirá actualizando a ligazón permanente mentres a entrada estea en borrador, sempre que haxa unha estrutura definida nos axustes do plugin. Cando a entrada se publica ou a súa ligazón permanente se actualiza manualmente, o plugin deixará de facer actualizacións automáticas para esa entrada.

Custom Permalinks: axuste fino con filtros

Custom Permalinks ofrece unha serie de filtros que permiten aos desenvolvedores controlar con precisión o seu comportamento. Podes explorar todos os filtros dispoñibles, con fragmentos de código de exemplo, no noso repositorio de GitHub.

Para obter axuda:

  • Usuarios Premium: Se necesitas axuda para implementar estes filtros, non dubides en contactar connosco a través do noso soporte de contacto Premium.
  • Outros usuarios: Tamén podes contactar directamente co autor do plugin a través de LinkedIn.

Necesitas axuda ou atopaches un fallo?

  • Soporte: Para soporte individual por correo electrónico, considera comprar Custom Permalinks Premium. Aínda que nos foros de WordPress.org pode darse algún soporte básico, o soporte por correo electrónico ten prioridade para os usuarios premium.
  • Informes de fallos: Se atopas un fallo, informa del en GitHub. Asegúrate de dar información completa para reproducir o problema. GitHub é para informes de fallos, non para preguntas xerais de soporte.

Se tes algún problema que bloquee o sitio tras actualizar, informa del no foro de WordPress ou en GitHub con información detallada. Sempre podes volver a unha versión anterior descargándoa desde https://wordpress.org/plugins/custom-permalinks/advanced/.

Capturas

Instalación

Tes dúas formas de instalar Custom Permalinks:

Desde WordPress

  1. Vai a Plugins > Engadir novo no teu Escritorio de WordPress.
  2. Busca «Custom Permalinks».
  3. Fai clic en «Instalar agora» e despois en «Activar» o plugin na túa páxina de Plugins.

Manualmente por FTP

  1. Descarga o cartafol custom-permalinks.
  2. Sube o cartafol custom-permalinks ao directorio /wp-content/plugins/.
  3. Activa Custom Permalinks no menú «Plugins» do teu Escritorio de WordPress.

Preguntas frecuentes

Que pasa coa URL orixinal cando establezo unha ligazón permanente personalizada?

Custom Permalinks redirixe automaticamente a URL orixinal (por defecto) á túa nova ligazón permanente personalizada, así que as ligazóns existentes, os marcadores e o posicionamento nos buscadores seguen funcionando.

Afectará isto ao SEO do meu sitio?

Non debería prexudicalo: como a URL orixinal redirixe á nova, os buscadores e as ligazóns externas existentes seguen resolvéndose correctamente. Usar ligazóns permanentes personalizadas limpas e descritivas tamén pode facer as túas URL máis lexibles, o que adoita ser bo para o SEO.

Podo establecer ligazóns permanentes personalizadas para categorías e etiquetas, e non só para entradas e páxinas?

Si. Custom Permalinks é compatible con entradas, páxinas, calquera tipo de contido personalizado público e categorías/etiquetas (e outros termos de taxonomías personalizadas).

Funciona con tipos de contido personalizados, como os produtos de WooCommerce?

Si. Podes establecer unha ligazón permanente personalizada individual en calquera tipo de contido personalizado público, ou definir unha estrutura de ligazón permanente automática para todo o tipo de contido en Custom Permalinks > Axustes dos tipos de contido.

Custom Permalinks é compatible con WPML ou Polylang?

Si, o plugin é compatible con WPML e Polylang, incluídas as entradas traducidas que teñen cada unha a súa propia ligazón permanente personalizada.

Podo usar caracteres non ingleses nas miñas ligazóns permanentes?

Si. As ligazóns permanentes en alfabetos non latinos, como árabe, tailandés, cirílico ou chinés, funcionan tal como as escribes. Os navegadores solicitan estas URL codificadas en porcentaxe, e Custom Permalinks coincide con elas de calquera das dúas formas.

De onde proceden as traducións do plugin?

De translate.wordpress.org. WordPress descárgaas automaticamente para o idioma do teu sitio. Se o plugin aparece en inglés nun sitio traducido, actualiza as traducións desde Escritorio > Actualizacións. Tamén podes axudar a traducilo alí.

Podo permitir que un usuario que non sexa administrador xestione as ligazóns permanentes?

Si. O plugin engade un perfil dedicado Custom Permalinks Manager (e as capacidades correspondentes) para que poidas permitir que usuarios concretos que non sexan administradores vexan ou editen ligazóns permanentes sen darlles acceso completo de administrador.

Podo usar letras con acento, maiúsculas ou guións adicionais nas miñas ligazóns permanentes?

Por defecto, Custom Permalinks sanea as ligazóns permanentes do mesmo xeito que o núcleo de WordPress (minúsculas, sen acentos, sen guións repetidos). Os desenvolvedores poden retirar estas restricións cos filtros custom_permalinks_allow_accents, custom_permalinks_allow_caps e custom_permalinks_redundant_hyphens. Consulta a sección Advanced Customization and Filters en GitHub.

Algúns maquetadores de páxinas cargan a súa vista previa en directo/do front-end nun iframe mediante unha solicitude POST con valores especiais que o maquetador necesita (por exemplo, cs_preview_time de Cornerstone). Se esa páxina tamén ten unha ligazón permanente personalizada, Custom Permalinks pode redirixir a solicitude e, como as redirecións se seguen como GET, os datos POST do maquetador perdéronse e a vista previa deixa de funcionar.

Podes indicarlle a Custom Permalinks que omita a súa redirección para esa solicitude co filtro custom_permalinks_avoid_redirect, engadido ao teu tema ou a un plugin específico do sitio:

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

Consulta a sección Advanced Customization and Filters en GitHub para ver este e outros filtros dispoñibles.

Que lles pasa ás miñas ligazóns permanentes personalizadas se desactivo ou desinstalo o plugin?

Desactivar o plugin mantén na base de datos todas as túas ligazóns permanentes personalizadas gardadas: ao reactivalo restáuranse de inmediato. Desinstalar (eliminar) o plugin elimina de forma permanente todas as ligazóns permanentes personalizadas gardadas e os axustes do plugin, e as túas URL volverán á estrutura de ligazóns permanentes por defecto de WordPress.

A miña ligazón permanente personalizada non se garda ou a páxina non redirixe: que debería comprobar?

  • Asegúrate de que Axustes > Ligazóns permanentes non estea establecido en «Simple».
  • Confirma que ningún outro plugin de SEO/redirección (Yoast, RankMath, Redirection, etc.) teña unha regra en conflito para a mesma URL.
  • Comproba que a ligazón permanente non estea xa usada por outra entrada: Custom Permalinks non aplicará unha URL duplicada.
  • Segues bloqueado? Consulta «Need Help or Found a Bug?» máis arriba, ou contacta a través de GitHub ou do soporte Premium.

Comentarios

23 de Xuño de 2026
I have a website with thousands of posts on it, and using this for permalinks has caused a slew of issues over the years of me running it. Unfortunately, I've got little choice but to keep using it since it has all the data for my permalinks inside of it. The particular issue that I'm currently facing really hurts my website. It causes the inability to bulk edit posts properly. There is a bug in which the first post in the order of the ones I've selected has its permalink copied over the posts underneath it. So if I select a bunch of posts in the editor, with the intention of *just* changing tags, it'll also copy the first post's permalink to all the ones I've selected. When this happens, you have no choice but to go back and manually edit all of those permalinks back. This wastes hours of my time. I almost did this to a lot of pages on accident before I even noticed what happened. It's hard to recommend something with such a glaringly bad bug. I'm not interested in going out of my way to purchase premium support for something that hasn't been updated in nearly a year, either. I have nothing I can do except grit my teeth through this and press on. That's hugely unacceptable in my eyes. I highly recommend skipping over this plugin and finding a different one. There's plenty of others like it.
21 de Febreiro de 2024
Excellent plugin. I would really like to see categories included as well.
10 de Decembro de 2023
Once you have installed this plugin, there is no turning back. These redirections are causing SEO issues and Google won't index my website because of them. I faced multiple URL crashes when I desactivated the plugin.
Ler todas as 117 opinións

Colaboradores e desenvolvedores

“Custom Permalinks” é un software de código aberto. As seguintes persoas colaboraron con este plugin.

Colaboradores

“Custom Permalinks” foi traducido a 19 idiomas. Grazas aos desenvolvedores polas súas contribucións.

Traduce “Custom Permalinks” ao teu idioma.

Interesado no desenvolvemento?

Revisa o código, bota unha ollada aorepositorio SVN, ou subscríbete ao log de desenvolvemento por RSS.

Rexistro de cambios

3.3.3 – Oct 13, 2026

  • Fallo:
    • Fixed an infinite redirect loop on percent-encoded custom permalinks without a trailing slash (e.g. Japanese), a regression in 3.3.0.

3.3.2 – Oct 11, 2026

  • Fallo:
    • Fixed custom permalinks in non-Latin scripts returning a 404 (e.g. Persian) when a shorter custom permalink matched the start of the URL (e.g. a product/ page for product/سلام/), a regression in 3.3.0.
    • Fixed custom permalinks in non-Latin scripts not loading with an endpoint appended (e.g. /سلام/feed/).

3.3.1 – Oct 8, 2026

  • Fallo:
    • Corrixiuse que as ligazóns Ver entrada e de vista previa do editor non se actualizasen, ou que se actualizasen ligazóns incorrectas, tras gardar unha ligazón permanente personalizada cando a URL anterior da entrada contiña caracteres como ?, + ou ( (p. ex. ?p=123 nos borradores).
    • Reforzouse o script do editor para que só actualice ligazóns cunha URL http(s) do dominio propio do sitio.
  • Accesibilidade:
    • Engadíronse etiquetas para lectores de pantalla ás caixas de verificación de Ligazóns permanentes dos tipos de contido e Ligazóns permanentes das taxonomías, aos campos de estrutura de Axustes dos tipos de contido e ao campo Custom Permalink das pantallas de categoría, etiqueta e termo.
    • Aumentouse o contraste do texto das etiquetas de estrutura en Axustes dos tipos de contido e das descricións dos plugins na pantalla Acerca de, e subliñáronse as ligazóns do seu texto.

3.3.0 – 8 de outubro de 2026

  • Changes to be aware of:
    • Requires WordPress 5.9 and PHP 7.4 or later, the oldest versions the plugin is now tested on. Sites on older versions keep 3.2.1.
    • Translations now come from translate.wordpress.org instead of files bundled with the plugin. It covers every bundled language and adds Serbian. Sites that installed the plugin outside wordpress.org, or turned off automatic translation updates, show English until the language pack is installed from Dashboard Updates.
    • WPML translations now always resolve to their own custom permalink. Previously they returned another language’s custom permalink depending on the active (admin) language, which listed wrong URLs in Post Types Permalinks and in SEO plugins’ indexables and XML sitemaps (e.g. Yoast SEO).
    • %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.
  • Redirects and URLs:
    • Fixed custom permalinks in non-Latin scripts (e.g. Thai, Arabic, Cyrillic) returning a 404 or redirecting in an infinite loop, as the browser requests them percent-encoded while they are saved unencoded (or vice versa, depending on the site language).
    • Fixed the trailing-slash redirect and the redirect to the custom permalink dropping the page number (e.g. /news/page/2 redirected to /news/ instead of /news/page/2/).
    • Added the 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.
    • Fixed the query string being corrupted (e.g. foo=bar became http://foo=bar) after a custom permalink was resolved.
    • Fixed comment links on paginated comments (e.g. /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.
  • WPML and Polylang:
    • Fixed the WPML language switcher linking back to the current language instead of the translation when languages are in directories (e.g. /en/, /de/) and the translation uses the same custom permalink.
    • Fixed WPML language directories that differ from the language code (e.g. /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.
    • Fixed English custom permalinks not being lowercased and cleaned of special characters with WPML 5.0’s region-based language codes (e.g. en-us).
    • Fixed Polylang translations sharing the same custom permalink (e.g. /en/technology and /zh/technology) redirecting to the other language when the translation’s stored language was missing or out of date.
  • Admin screens:
    • Fixed Post Types and Taxonomies Permalinks pagination showing the first page’s results on every page, ignoring sorting and search, when a persistent object cache (e.g. Redis or Memcached) is enabled. The lists now also refresh right after a permalink is added, changed or deleted.
    • Fixed bulk delete and search in Post Types and Taxonomies Permalinks failing with a “headers already sent” warning instead of redirecting.
    • Fixed short titles and permalinks being padded with leading spaces in the Post Types and Taxonomies Permalinks lists.
    • Fixed every post of a type showing and saving the same custom permalink when a theme or plugin runs a custom loop in the admin without resetting the global post.
    • Fixed the original permalink showing as the custom permalink in the edit screen’s permalink box and in the block editor, and being compared against when saving a post or term.
    • Fixed a fatal error on WordPress 5.9 and 6.0 when saving the Post Types Permalinks settings with the cache flush option, as wp_cache_flush_group() needs WordPress 6.1. Object caches that can’t flush a single group now get a full cache flush.
    • Fixed the “Custom Permalinks Manager” role name not being translatable.
    • Fixed Post Types Settings showing the WordPress address instead of the site address before each structure, which is wrong when WordPress is installed in a subdirectory.
  • Compatibility:
    • Fixed WooCommerce notices about accessing order data directly on order screens, as the permalink form read post fields from the WC_Order object.
    • Fixed posts updated by WP All Import being handled as new posts, which turned permalink regeneration back on and could replace their custom permalink with the post type’s structure.
    • Fixed the seems_utf8() deprecation notice on WordPress 6.9 and later.

Versións anteriores

  • Para ver o rexistro de cambios das versións anteriores, consulta o arquivo changelog.txt separado.