Rediriger le site principal vers le sous-site dans Wordpress multisite

11

J'ai wordpress multi-site, je veux rediriger le site principal vers l'un des sous-sites mais la redirection en .htacecss donne une erreur. Existe-t-il un moyen de rediriger un site principal vers son sous-site. Cela ne semble pas possible, mais je ne suis pas un expert wordpress donc je vérifie juste.

La redirection doit être comme

rediriger 301 www.example.com/main-site www.example.com/main-site/sub-site

Ou s'il existe un autre moyen de le faire?

Toqeer
la source

Réponses:

10

Vous pouvez utiliser l' parse_requestaction pour y parvenir. Activez simplement ce plugin sur votre blog principal. Placez le code suivant dans un fichier .php et téléchargez-le dans votre répertoire de plugins.

/*
Plugin Name: Redirect Main Site To Sub-Site
Description: Redirect 'main-site' to 'main-site/sub-site/'
Version: 0.1
Author: WPSE
Author URI: http://wordpress.stackexchange.com
License: GPL2
*/

add_action('parse_request', 'redirect_to_sub_site');
function redirect_to_sub_site(){
    global $wp;

    #Sniff requests for a specific slug
    if('main-site' === $wp->request){

        #The URL to redirect TO
        $url = 'http://www.example.com/main-site/sub-site/';

        #Let WordPress handle the redirect - the second parameter is obviously the status
        wp_redirect($url, 301);

        #It's important to exit, otherwise wp_redirect won't work properly
        exit;
    }
}

Faites moi savoir si vous avez des questions.

Brian Fegter
la source
+1 Et le voici encore comme un joli deux paquebot ;)
kaiser
1
@Toqeer Vous devriez attribuer la prime. Je ne le récupérerai pas. ;)
kaiser
Je viens de l'attribuer, je pensais qu'il serait automatiquement attribué :)
Toqeer
J'ai essayé maintenant avec la dernière version de WordPress mais cela ne fonctionne pas. Avez-vous une idée?
Utilisateur
1
J'ai trouvé une solution pour cela, au lieu de vérifier la requête $ wp->, il suffit de vérifier avec la fonction is_main_site ();
Maor Barazany
3

Il semble que $wp->requestcelui suggéré dans la réponse ci-dessus soit toujours une chaîne vide (dans WPMS 4.5.2), vous pouvez donc vérifier cela à la place is_main_site();.

Maor Barazany
la source
2

La réponse acceptée ne fonctionne pas pour Wordpress 4.9.8. Voici le code mis à jour et testé. Mettez ceci dans function.php du thème actif.

<?php
function wpse66115_redirect_to_sub_site() {
  if ( is_main_site() ) {
    exit( wp_redirect( 'http://www.example.com/main-site/sub-site/', 301 ) );
  }
}
add_action( 'parse_request', 'wpse66115_redirect_to_sub_site' );
?>
sharulhafiz
la source