web-dev-qa-db-fra.com

Supprimer la limace dans l'URL de la taxonomie

Je me demandais simplement comment supprimer des slugs de certaines URL. J'utilise un type de message personnalisé appelé exposants et certaines taxonomies pour définir ces exposants (par exemple: invités vedettes, éditeurs, etc.):

En ce moment, j'ai ceci: http://thisurl.com/exhibitor_filters/featured-guests/

Je voudrais ceci: http://thisurl.com/featured-guests/

J'ai joué avec la réécriture/slug dans wp, mais jusqu'à présent, pas de dés.

Suggestions?

Merci!

-Modifier-

Des temps amusants, maintenant je reçois juste 404 erreurs pour tout impliquant des types de post personnalisés et des termes de taxonomie. Je vais voir si je peux au moins faire en sorte que cette chose arrête d'abord tant de choses ... merci pour vos suggestions générales les gars.

6
Nadine

Cela n'est pas possible par défaut et l'utilisation des API d'enregistrement CPT et Custom Tax n'est pas possible.

Et pour une bonne raison.

Tout cela est lié aux affrontements permanents et aux affrontements de limaces, ainsi qu’à la suppression de l’ambiguïté. Certes, il existe des cas où des URL uniques qui ne se chevauchent jamais ne sont pas autorisées par le système pour cette raison (faux négatif).

Je vous recommande donc de choisir un remplaçant pour 'exhibitor_filters' tel que 'exhibitors' ou 'filters' et de l'utiliser comme slug dans l'option de réécriture lors de votre inscription.

Si vous voulez vraiment le faire comme vous le souhaitez, vous devrez ajouter des règles de réécriture. Cela peut être problématique, car vous courez le risque réel d’affrontements (chargeons-nous la page 'about' ou le terme exhibitor_filter 'about'?), Et l’ordre et les priorités de vos hooks joueront un rôle important.

par exemple.

function ex_rewrite( $wp_rewrite ) {

    $feed_rules = array(
        '(.+)'    =>  'index.php?exhibitor_filter='. $wp_rewrite->preg_index(1)
    );

    $wp_rewrite->rules = $wp_rewrite->rules + $feed_rules;
}
// refresh/flush permalinks in the dashboard if this is changed in any way
add_filter( 'generate_rewrite_rules', 'ex_rewrite' );

Le code ci-dessus fonctionnera pour des termes individuels, mais il devra être modifié pour les URL et les taxonomies hiérarchiques.

Placez le code dans functions.php de votre thème ou de votre plugin associé aux thèmes.

Avertissement: Vous devrez faire attention à ne pas avoir des permaliens en conflit, et vous devrez être conscient de l'ordre dans lequel les règles passent en premier. Utilisez le plug-in d’analyseur monkeyman rewrite pour le vérifier. Tu étais prévenu.

6
Tom J Nowell

Il existe un plugin qui vous permettra facilement de supprimer le slug de la taxonomie en quelques clics. Quoi qu'il en soit, comme dit Tom, soyez prudent, par exemple, en ne nommant pas deux taxonomies différentes, le même ou tout ralentirait.

Le plugin url est http://wordpress.org/extend/plugins/wp-htaccess-control/

2
chifliiiii

J'ai trouvé cette réponse ici et ai utilisé le code dans les commentaires de Jonathan Brinley. Vous devez d'abord déclarer votre taxonomie "exhibitor_filters", puis votre CPT, en définissant son slug sur %exhibitor_filters%.

Tous vos termes et termes seront alors corrects, y compris les liens d’archives. Dans mon cas, j'ai enlevé le slug du CPT des permaliens en utilisant le% taxo% du slug du CPT, et j'ai également travaillé sauf dans le terme archive, qui montre toujours le slug du CPT, mais dans votre cas, cela semble être ce que vous voulez.

Vous semblez vouloir des pages d’archives contenant toutes les publications personnalisées dans le filtre "featured-guests" exposants.

Bonne chance.

0
sergio

Vous devriez pouvoir le spécifier depuis votre section permalink. Vous pouvez définir cela via un permalien personnalisé, mais il semble que l'une des options par défaut "post name" devrait fonctionner pour vous. Cela peut être trouvé sous paramètres, permaliens dans le backend wordpress.

0
Lorenzo W.