Multisite în subfolder - Cum să faci noile site-uri să fie în același nivel de subfoldere ca site-ul principal
Am următoarea situație. Am instalat un WP Multisite într-un subfolder:
my-domain.com/subfolder/wp-multisite-root
În mod normal, următoarele site-uri adăugate ar fi create astfel:
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
Există vreo metodă prin care să le pot crea astfel?
my-domain.com/subfolder/wp-multisite-root
my-domain.com/subfolder/site1
my-domain.com/subfolder/site2
my-domain.com/subfolder/site3
Mai este o particularitate. my-domain.com/subfolder/ conține o altă aplicație care nu este WordPress.
După acești ani, sper că acest răspuns va rezolva încă întrebarea ta...
Cred că am reușit să rezolv situația pe care o dorești. Deși nu am instalarea WordPress în '/subfolder/', dar am o instalare 'în subdirector' pe limbă, și pe același nivel:
my-domain.com/nl/ -> aceasta este instalarea primară, site id = 1
my-domain.com/en/ -> acesta este primul site creat prin multistie, site id = 2
my-domain.com/de/ -> acesta este al doilea site creat prin multistie, site id = 3
Necesită puțină 'hacking' în baza de date, dar este foarte ușor.
Pasul 1: Asigură-te că instalarea ta 'root' pentru multisite funcționează conform așteptărilor în subdirectorul său. În cazul meu, am următoarele în 'wp-config.php':
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // permite instalare sub-director (true pentru instalare subdomeniu)
define('DOMAIN_CURRENT_SITE', 'my-domain.com/subfolder');
define('PATH_CURRENT_SITE', '/wp-multisite-root/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
(de fapt, în realitate nu am '/subfolder' :))
Pasul 2: Acum creează primul tău site nou prin multisite într-un subfolder. Când introduci numele folderului 'site2', WordPress îți va spune că va fi creat ca: my-domain.com/subfolder/wp-multisite-root/site2 Asta este corect, vom elimina manual folderul 'wp-multisite-root'
Pasul 3:
Deschide phpMyAdmin/directAdmin
În tabela wp_blogs
editează intrarea noului tău site creat.
Va trebui să modificăm path
-ul acestuia.
Se poate face cu următoarea interogare:
UPDATE `wp_blogs` SET `path` = '/site2/' WHERE `wp_blogs`.`path` = '/wp-multisite-root/site2/';
Schimbă numele domeniului și al site-ului în consecință. De asemenea, caută id-ul site-ului menționat acolo. Dacă este primul site suplimentar creat, va avea ID 2 ca în introducerea mea.
Pasul 4:
Caută în tabela wp_<SITEID>_options
.
În cazul nostru cu Site ID 2, va fi wp_2_options
.
Acolo va trebui să schimbăm option_value
unde option_name
este 'siteurl' și 'home'. Se poate face rulând următoarele interogări:
UPDATE `wp_2_options` SET `option_value` = 'my-domain.com/subfolder/site2/' WHERE `option_name` = 'siteurl';
UPDATE `wp_2_options` SET `option_value` = 'my-domain.com/subfolder/site2/' WHERE `option_name` = 'home';
Din nou, schimbă domeniul și numele folderului în consecință. Vei observa că eliminăm 'wp-multisite-root' din url-ul acolo, astfel site2 va fi pe același nivel ca `wp-multisite-root'.
Pasul 5: Reîmprospătează wp-admin și site-urile tale vor fi listate așa cum doreai.

Instalarea unei rețele multisite într-un subfolder nu îmi permite să adaug un site cu un domeniu nou fără ca articolele să apară ca 404. Domeniul principal funcționează corect, cel nou funcționează bine cu excepția articolelor, care apar ca 404. Am încercat să modific permanentlink-ul, dar nu funcționează, singurul lucru care merge este să setez permanentlink-ul la index.php/%postname%/
- aici funcționează, dar acest lucru face ca index.php
să apară în toate URL-urile, ceea ce arată urât din punct de vedere estetic. Cred că trebuie să repar ceva în .htaccess
.

Răspunsul lui Piemol este excelent și a funcționat pentru mine. Cu toate acestea, nu am putut să mă autentific pe niciunul dintre site-urile mele, cu excepția site-ului principal. După ce am inspectat cookie-urile, am descoperit că WordPress crea un cookie doar pentru site-ul meu principal și nu pentru celelalte subdirectoare. Pentru a folosi exemplul OP, acesta crea un cookie pentru /subfolder/wp-multisite-root
, pe care /subfolder/site1
nu îl putea utiliza.
Am cercetat nucleul WordPress pentru a vedea ce trebuie să repar și am ajuns să adaug acest cod în plugin-ul meu personalizat pentru a corecta căile folosite pentru cookie-uri:
define('COOKIEPATH', '/subfolder/');
define('SITECOOKIEPATH', '/subfolder/');
În cazul meu, structura site-ului meu este de fapt ca cea a lui Piemol, așa că am corectat căile cookie-urilor pentru a fi rădăcina:
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');

Scuze, am uitat să menționez că my-domain/subfolder/ conține o aplicație.

@ChipBennett asta ar suprascrie vreuna dintre configurațiile curente ale site-ului?
