web-dev-qa-db-fra.com

Redirection lors du changement de slugs personnalisés?

J'ai changé le nom de deux de mes types de publication personnalisés. Les slugs d'origine pour eux ne reflétaient pas correctement le type de message. J'ai donc besoin de rediriger les demandes pour les articles commençant par designer_lingerie (l'ancien type de message) en juste designer. Tous les messages sont identiques, le slug de type de message a changé.

Je suis sûr que je devrai utiliser .htaccess, mais je ne sais pas quoi dire. Fondamentalement, quelle URL dois-je utiliser pour faire cela? La jolie URL de WordPress ou l'URL par défaut?

1
dkmojo

Tout ce que vous avez à faire est d’ajouter une ligne comme ceci:

RewriteRule ^aboutus$ /about-us [R=301,L]

Dans votre fichier .htaccess. L'ancienne URL doit être comprise entre ^ et $, puis nouvelle URL après la barre oblique.

1
Alex Older

Je n'utiliserais pas le module Apache Rewrite, mais la fonctionnalité de réécriture WordPress intégrée. Si vous voulez voir les règles qu'il utilise, installez mon plugin d'analyse Rewrite . Vous pouvez simplement dupliquer les règles de votre type de message, avec l'ancien slug à la place du nouveau slug. De cette façon, les deux URL renverront au contenu de votre message.

// The filter name is [post type name]_rewrite_rules, so I assume your post type name (not rewrite slug) is `designer`
add_filter( 'designer_rewrite_rules', 'wpse22625_designer_rewrite_rules' );
function wpse22625_designer_rewrite_rules( $rules )
{
    $old_rules = array();
    foreach ( $rules as $pattern => $substitution ) {
        $old_pattern = str_replace( 'designer', 'designer_lingerie', $pattern );
        $old_rules[$old_pattern] = $substitution;
    }
    return $rules + $old_rules;
}

Cela ne générera pas de redirection - bizarre, je m'attendais à la fonction redirect_canonical() . Vous pouvez le faire vous-même si vous le souhaitez, soit en vous connectant à redirect_canonical, soit en définissant un indicateur supplémentaire que vous vérifiez vous-même.

2
Jan Fabry

Si vous modifiez les liens permanents, mais pas la structure sous-jacente, WordPress devrait pouvoir trouver vos publications, car la "véritable" structure d'URL reste identique. En d'autres termes, si vous ne changez que les permaliens, il devrait automatiquement être redirigé vers le bon emplacement.

1
BjornW

WP conserve les métadonnées correspondantes concernant le permalien non joli d'origine et toute modification apportée aux permaliens standard. Voir http://codex.wordpress.org/Using_Permalinks

Si vous avez des permaliens non-jolis dans le contenu de post/page ou si vous les laissez codés en dur, WP les redirigera vers la jolie version.

Cela dit, si vous modifiez l'URL directement dans l'éditeur de publication/de page, vous devez rediriger les messages. Une des façons de gérer cela est avec un plugin comme WordPress ›Redirection" Plugins WordPress

0
markratledge