web-dev-qa-db-fra.com

Est-il possible d'utiliser un seul slug pour plusieurs taxonomies?

J'ai une situation où j'ai beaucoup de balises et je veux ajouter des taxonomies personnalisées pour les trier. Mais le problème, c’est que lorsque j’enregistre une nouvelle taxonomie, je ne peux pas utiliser de tag slug.

Exemple (Taxonomie des balises)

example.com/tag/artist-name

Changé en (taxonomie de l'artiste)

example.com/tag/artist-name

Comme vous pouvez le constater, je souhaite modifier la taxonomie tout en préservant les permaliens. Je veux lister les tags en fonction de quelques choses. Mais les tags ne sont que des tags, il n'y a pas de tri par type avec eux. J'aurais dû utiliser des taxonomies personnalisées dès le début, mais il est trop tard maintenant.

Si je change les balises en nouvelle taxonomie, cela ressemblera à ceci

example.com/artist/artist-name

Et j'aurai beaucoup de 404 pages. Comment puis-je même rediriger des pages 1k? Surtout qu'ils ne sont qu'une partie des tags. Je devrais vraiment ajouter des redirections une par une.

2
Recofa

Vous ne devriez pas et probablement ne pouvez pas atteindre ce que vous cherchez. Le terme de taxonomie tag est réservé par WordPress lui-même, ainsi que par quelques autres termes. Jetez un coup d'oeil dans this page du codex.

Si vous utilisez le même slug pour différentes taxonomies, cela irait à l'encontre du but recherché. Par exemple, les catégories et les balises sont des taxonomies elles-mêmes.

Imaginez que vous ayez deux catégories, /cat/ et /dog/, les deux pointant vers /animals/. WordPress lui-même ne vous permettra pas de faire cela, mais supposons que vous le fassiez en piratant la base de données. Que devrait-on montrer lorsque vous visitez /animals/ slug? des chats ou des chiens?

Le pire scénario est même de mélanger différents types de taxonomie. Ensuite, WordPress ne peut même pas décider quel fichier modèle utiliser!

Malheureusement, WordPress n'est pas optimisé pour que cela se produise pour vous simplement en écrivant une règle simple. J'ai moi-même dû refaire beaucoup d'œuvres parfois, simplement parce que je ne l'avais pas fait correctement au début. Votre autre option serait d'écrire une requête SQL ou un plug-in pour modifier les données pour vous et les sauvegarder dans un nouveau format.

Même si vous écrivez des règles de réécriture pour y parvenir, vous vous retrouverez avec un site Web gâché, des pages aléatoires de 404 pages et une sortie de contenu incorrecte.

3
Jack Johansson

Il existe des plugins disponibles pour convertir les taxonomies - recherchez quelque chose comme "convertisseur de taxonomie" et vous en trouverez.

Une fois que vous les avez convertis, une simple redirection .htaccess prend en charge les URL:

RewriteEngine On
RewriteRule ^tag/(.*)$ http://example.com/artist/$1 [R=301,L]

Ceci redirige tout ce qui se trouve dans un dossier/tag /, enregistre le sous-dossier (nom d’artiste) et le redirige vers example.com/artist/artist-name - pour tous les noms d’artistes.

Il suffit de changer exemple.com et de placer ces lignes au-dessus du contenu par défaut de WP .htaccess.

1
WebElaine