Multisite en subcarpeta - Cómo hacer que nuevos sitios estén en el mismo nivel de subcarpetas que el sitio principal
Tengo la siguiente situación. Tengo una instalación de WP Multisite en un subdirectorio:
my-domain.com/subfolder/wp-multisite-root
Normalmente, los sitios adicionales se crearían de esta manera:
my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/wp-multisite-root/site1
my-domain.com/subfolder/wp-multisite-root/site2
my-domain.com/subfolder/wp-multisite-root/site3
¿Hay alguna manera de hacer que se creen así?
my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/site1
my-domain.com/subfolder/site2
my-domain.com/subfolder/site3
Hay un detalle adicional. my-domain.com/subfolder/ contiene otra aplicación que no es WordPress.

Después de todos estos años espero que esto aún responda a tu pregunta...
Creo que he conseguido que funcione la situación que deseas. Aunque no tengo la instalación de WordPress en '/subcarpeta/', pero tengo una instalación 'en subdirectorio' por idioma, y al mismo nivel:
mi-dominio.com/nl/ -> esta es la instalación principal, ID del sitio = 1
mi-dominio.com/en/ -> este es el primer sitio creado por multisitio, ID del sitio = 2
mi-dominio.com/de/ -> este es el segundo sitio creado por multisitio, ID del sitio = 3
Requiere un poco de 'hackeo' en la base de datos, pero es muy fácil.
Paso 1: Asegúrate de que tu instalación 'raíz' de multisitio funcione como se espera en su subdirectorio. En mi caso tengo lo siguiente en 'wp-config.php':
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // permitir instalación en subdirectorio (true para instalación en subdominio)
define('DOMAIN_CURRENT_SITE', 'mi-dominio.com/subcarpeta');
define('PATH_CURRENT_SITE', '/wp-multisite-root/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
(bueno, en realidad no tengo '/subcarpeta' :))
Paso 2: Ahora crea tu primer sitio nuevo a través de multisitio en una subcarpeta. Al ingresar el nombre de la carpeta 'sitio2', WordPress te dice que se creará como: mi-dominio.com/subcarpeta/wp-multisite-root/sitio2 Eso es correcto, eliminaremos manualmente la carpeta 'wp-multisite-root'
Paso 3:
Abre phpMyAdmin/directAdmin
En la tabla wp_blogs
edita la entrada de tu nuevo sitio creado.
Tendremos que modificar la ruta
del mismo.
Se puede hacer con la siguiente consulta:
UPDATE `wp_blogs` SET `path` = '/sitio2/' WHERE `wp_blogs`.`path` = '/wp-multisite-root/sitio2/';
Cambia el nombre del dominio y del sitio según corresponda. También busca el ID del sitio mencionado allí. Si es el primer sitio extra creado, será el ID 2 como en mi introducción.
Paso 4:
Busca en la tabla wp_<SITEID>_options
.
En nuestro caso con el ID del sitio 2, será wp_2_options
.
Allí tendremos que cambiar el valor_de_opcion
donde el nombre_de_opcion
es 'siteurl' y 'home'. Se puede hacer ejecutando las siguientes consultas:
UPDATE `wp_2_options` SET `option_value` = 'mi-dominio.com/subcarpeta/sitio2/' WHERE `option_name` = 'siteurl';
UPDATE `wp_2_options` SET `option_value` = 'mi-dominio.com/subcarpeta/sitio2/' WHERE `option_name` = 'home';
De nuevo, cambia el dominio y el nombre de la carpeta según corresponda. Notarás que eliminamos 'wp-multisite-root' de la URL allí, por lo que sitio2 estará al mismo nivel que `wp-multisite-root'.
Paso 5: Actualiza wp-admin y tus sitio(s) aparecerán listados como deseabas.

Instalar una multisite dentro de una subcarpeta no me permite agregar un nuevo sitio con dominio sin que las publicaciones aparezcan como 404. El dominio principal funciona bien, el nuevo funciona bien excepto las publicaciones, que aparecen como 404. He ido a los enlaces permanentes pero no funciona, lo único que funciona es poner en el enlace permanente index.php/%postname%/
allí funciona bien pero esto hace que index.php
aparezca en todas las URLs lo cual se ve feo estéticamente. Creo que necesito arreglar algo en .htaccess

La respuesta de Piemol es excelente y me funcionó. Sin embargo, no podía iniciar sesión en ninguno de mis sitios excepto en el principal. Al inspeccionar mis cookies, descubrí que WordPress estaba creando una cookie solo para mi sitio principal y no para los otros subdirectorios. Usando el ejemplo de OP, estaba creando una cookie para /subfolder/wp-multisite-root
, la cual /subfolder/site1
no podía usar.
Investigué en el núcleo de WordPress para ver qué necesitaba corregir, y terminé agregando este código a mi plugin personalizado para solucionar las rutas usadas para las cookies:
define('COOKIEPATH', '/subfolder/');
define('SITECOOKIEPATH', '/subfolder/');
En mi caso, la estructura de mi sitio es como la de Piemol, así que corregí las rutas de mis cookies para que apunten a la raíz:
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');

Lo siento, olvidé mencionar que my-domain/subfolder/ contiene una aplicación.

@ChipBennett ¿eso anularía alguna de las configuraciones actuales del sitio?
