web-dev-qa-db-fra.com

Rediriger des publications de catégories spécifiques vers un sous-domaine

Nous avons un site WordPress, qui contient des articles et des pages avec différentes catégories. Maintenant, nous avons déplacé une catégorie particulière dans un sous-domaine et nous souhaitons une redirection 301 afin que chaque publication de cette catégorie spécifique pointe vers le sous-domaine. Tous les articles ont une extension .html dans le domaine principal, nous avons donc également changé la structure de permalien de sous-domaine en .html. par exemple: nous avons http://www.mydomain.com/category/category-name & nous avons créé le sous-domaine pour cette catégorie - http://category-name.mydomain.com
nous pouvons facilement rediriger cette catégorie vers un sous-domaine en utilisant la redirection .htaccess 301 mais la seule page d'accueil de la catégorie est redirigée, pas tous les messages, nous souhaitons rediriger tous les messages de cette catégorie vers des points messages de domaine. Exemple de message: www.mydomain.com/sample-posts.html de cette catégorie doit être redirigé avec category-name.mydomain.com/sample-posts.html.

Comment rediriger tous les messages de cette catégorie avec cette catégorie également dans un sous-domaine? Aussi, devrions-nous supprimer tous les articles du domaine principal ou devons-nous les conserver?

3
Voiceable

Vous pouvez utiliser le crochet d'action template_redirect pour atteindre cet objectif:

add_action('template_redirect', 'redirect_category_posts');
function redirect_category_posts() {
    global $post;
    if (is_single($post->ID) && in_category('category-name', $post)) {
        $new_url = "http://category-name.mydomain.com/{$post->post_name}.html";
        wp_redirect($new_url, 301);
        exit;
    }
}

Veuillez noter que les deux publications du domaine principal et du sous-domaine doivent avoir le même slug ou post_name pour que ce code fonctionne.

5
Ahmad M