Redirecionar site principal para subsite no Multisite Wordpress

11

Eu tenho wordpress multi-site, quero redirecionar o site principal para um dos sub-site, mas o redirecionamento em .htacecss dá erro. Existe alguma maneira de redirecionar um site principal para seu subsite. Parece que não é possível, mas eu não sou um especialista em wordpress, apenas confirmando.

O redirecionamento deve ser como

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

Ou se existe alguma outra maneira de fazer isso?

Toqeer
fonte

Respostas:

10

Você pode usar a parse_requestação para fazer isso. Basta ativar esse plug-in no seu blog principal. Coloque o seguinte código em um arquivo .php e faça o upload para o diretório 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;
    }
}

Deixe-me saber se você tiver alguma dúvida.

Brian Fegter
fonte
+1 E aqui está ele de novo como dois forro agradável ;)
kaiser
1
@ Toqeer Você deve conceder a recompensa. Não vou recuperá-lo de qualquer maneira. ;)
kaiser
Apenas concedido, eu pensei que ele será automaticamente concedido :)
Toqeer
Eu tentei agora com a versão mais recente do WordPress, mas ela não está funcionando. Você tem alguma ideia?
Utilizador
1
Encontrei uma solução para isso, em vez de verificar a solicitação $ wp->, basta verificar com a função is_main_site ();
Maor Barazany
3

Parece que o $wp->requestsugerido na resposta acima é sempre uma sequência vazia (no WPMS 4.5.2), portanto, você pode verificar isso is_main_site();.

Maor Barazany
fonte
2

A resposta aceita não está funcionando para o Wordpress 4.9.8. Aqui está o código atualizado e testado. Coloque isso dentro de function.php do tema ativo.

<?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
fonte