Redirigir el sitio principal al subsitio en WordPress multisitio

11

Tengo wordpress multisitio, quiero redirigir el sitio principal a uno de los subsitios pero la redirección en .htacecss da error. ¿Hay alguna manera de redirigir un sitio principal a su subsitio? Eso no parece posible, pero no soy un experto en WordPress, así que solo verifico.

La redirección debería ser como

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

¿O si hay otra forma de hacerlo?

Toqeer
fuente

Respuestas:

10

Puedes usar la parse_requestacción para lograr esto. Simplemente habilite este complemento en su blog principal. Coloque el siguiente código en un archivo .php y cárguelo en su directorio de complementos.

/*
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;
    }
}

Hazme saber si tienes alguna pregunta.

Brian Fegter
fuente
+1 Y aquí está de nuevo como dos lindas líneas ;)
kaiser
1
@Toqeer Deberías otorgar la recompensa. No lo recuperaré de ninguna manera. ;)
kaiser
Recién premiado, pensé que se otorgaría automáticamente :)
Toqeer
Intenté ahora con la última versión de WordPress pero no funciona. ¿Tienes alguna idea?
Usuario
1
Encontré una solución para eso, en lugar de verificar la solicitud $ wp->, simplemente verifique con la función is_main_site ();
Maor Barazany
3

Parece que lo $wp->requestsugerido en la respuesta anterior es siempre una cadena vacía (en WPMS 4.5.2), por lo que puede verificar esto is_main_site();.

Maor Barazany
fuente
2

La respuesta aceptada no funciona para Wordpress 4.9.8. Aquí está el código actualizado y probado. Ponga esto dentro de function.php del tema activo.

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