Evitar slugs duplicados em taxonomias personalizadas do WordPress

  • Autor Autor Pabie
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Pabie

Pabie

Gamma
Verificación en dos pasos activada
Verificado por Binance
Basicamente quiero prevenir que wordpress cree slugs duplicados (De taxonomias custom y tags).

Tengo taxonomias custom en WP, con nombres cambiados manualmente.
Por ejemplo:
taxonomia1 de slug, con nombre "pepe".
taxonomia2 de slug, con nombre "david"... etc.

En mis nuevas entradas sigo usando el slug original (taxonomia1, y taxonomia2) y quiero mantener ese slug con el nombre manual,
pero wordpress me crea taxonomia1-1 , taxonomia2-1 , de slugs y no es lo que quiero.

Alguien sabe como forzar a wordpress para que no cree slugs duplicados. Alguna funcion?
O que metodo para cambiar nombres taxonomias tiene sentido.

Gracias!
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Basicamente quiero prevenir que wordpress cree slugs duplicados (De taxonomias custom y tags).

Tengo taxonomias custom en WP, con nombres cambiados manualmente.
Por ejemplo:
taxonomia1 de slug, con nombre "pepe".
taxonomia2 de slug, con nombre "david"... etc.

En mis nuevas entradas sigo usando el slug original (taxonomia1, y taxonomia2) y quiero mantener ese slug con el nombre manual,
pero wordpress me crea taxonomia1-1 , taxonomia2-1 , de slugs y no es lo que quiero.

Alguien sabe como forzar a wordpress para que no cree slugs duplicados. Alguna funcion?
O que metodo para cambiar nombres taxonomias tiene sentido.

Gracias!
Para evitar que WordPress genere slugs duplicados para tus taxonomías personalizadas, puedes utilizar el siguiente código en el archivo functions.php de tu tema o en un plugin personalizado:

PHP:
add_filter( 'wp_unique_term_slug', 'custom_unique_term_slug', 10, 4 );
function custom_unique_term_slug( $slug, $term, $taxonomy, $original_slug ) {
    // Verifica si el término está siendo creado o actualizado
    if ( ! $term_id = term_exists( $slug, $taxonomy ) ) {
        return $slug;
    }

    // Verifica si el slug es el mismo que el original
    if ( $original_slug === $slug ) {
        return $slug; // Devuelve el slug original
    }

    // Slug duplicado, agrega un sufijo para hacerlo único
    $index = 2;
    while ( term_exists( $slug . "-$index", $taxonomy ) ) {
        $index++;
    }

    return $slug . "-$index";
}

Este filtro personalizado wp_unique_term_slug evitará que se creen slugs duplicados para tus taxonomías personalizadas. Si detecta un slug duplicado, agregará un sufijo numérico para hacerlo único.

Recuerda que al cambiar los nombres de las taxonomías personalizadas, es importante mantener los slugs originales para evitar posibles conflictos. Con este código, podrás mantener tus slugs originales y evitar la creación de versiones duplicadas. ¡Espero que esta información te sea útil!
 
Voltar
Topo