Intereting Posts
Как изменить частоту запланированного события? Заблокируйте один из сайтов WP Network для незарегистрированных пользователей Используя $ wpdb (класс WPDB) 'replace' с несколькими критериями WHERE Пользовательский шаблон страницы не отображается при создании страницы. Multisite не создают папки для подсайтов невозможно отобразить мета-значение изображения в качестве фона отображение динамического содержимого на основе URL-адреса на пользовательской странице Случайная панель боковой панели / виджета Как найти языковое направление? Как получить список продуктов с идентификатором категории в WordPress do_shortcode не работает на некоторых страницах Страница архива CPT – показывать по одному сообщению из каждого таксономического термина Magic Fields дает ошибку Файл ___ не существует? Задача the_permalink Шаблон таможенной информации о времени таксономии, который фильтрует 2 или более таксономии

Multisite в подпапке – как сделать новые сайты одинаковыми подпапками в качестве основного сайта

У меня есть следующая ситуация. У меня есть WP Multisite, установленный в подкаталоге:

my-domain.com/subfolder/wp-multisite-root 

Теперь обычно добавляются следующие добавляемые сайты

 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 

Есть ли способ создать его таким образом?

 my-domain.com/subfolder/wp-multisite-root my-domain.com/subfolder/site1 my-domain.com/subfolder/site2 my-domain.com/subfolder/site3 

Есть еще один трюк. my-domain.com/subfolder/ содержит другое приложение без WordPress.

После этих лет я надеюсь, что это все равно ответит на ваш вопрос …

Я думаю, что у меня есть ситуация, в которой вы хотите. Несмотря на то, что у меня нет установки WordPress в «/ subfolder /», но у меня есть установка «в подкаталоге» для каждого языка и на том же уровне:

  my-domain.com/nl/ -> this is primary installation, site id = 1 my-domain.com/en/ -> this is the first site created by multistie, site id = 2 my-domain.com/de/ -> this is the second site created by multistie, site id = 3 

Это требует немного «взлома» в базе данных, но это очень просто.

Шаг 1. Убедитесь, что ваша многоузловая «корневая» установка работает по своему назначению в ее подкаталоге. В моем случае я получил следующее в 'wp-config.php':

 define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); // allow sub-directory install (true for subdomain install) 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); 

(ну на самом деле у меня нет «подпапки» :))

Шаг 2: Создайте новый сайт с помощью мультисайта во вложенной папке. При вводе имени папки «site2» WordPress сообщает, что он будет создан как: my-domain.com/subfolder/wp-multisite-root/site2. Верно, мы удалим папку «wp-multisite-root» вручную t

Шаг 3. Откройте phpMyAdmin / directAdmin. В таблице wp_blogs отредактируйте запись, которую вы недавно создали. Нам придется изменить его path . Это можно сделать по следующему запросу:

 UPDATE `wp_blogs` SET `path` = '/site2/' WHERE `wp_blogs`.`path` = '/wp-multisite-root/site2/'; 

Измените имя домена и имя сайта соответственно. Также ищите идентификатор сайта, упомянутый здесь. Если его первый дополнительный сайт создал, он будет ID 2, как в моем вступительном слове.

Шаг 4. Посмотрите в таблицу wp_<SITEID>_options . В нашем случае с идентификатором сайта 2 это будет wp_2_options . Там нам нужно будет изменить option_value где option_name – 'siteurl' и 'home'. Это можно сделать, выполнив следующие запросы:

 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'; 

Снова измените имя домена и папки соответственно. Вы заметите, что мы удаляем 'wp-multisite-root' из url, поэтому site2 будет на том же уровне, что и `wp-multisite-root '.

Шаг 5: Обновите wp-admin и ваши сайты будут перечислены по вашему желанию.

Ответ Пимеля велик и работает для меня. Однако мне не удалось войти в любой из моих сайтов, кроме основного сайта. При проверке моих файлов cookie я обнаружил, что WordPress делает cookie только для моего основного сайта, а не для других подкаталогов. Чтобы использовать пример OP, он создавал файл cookie для /subfolder/wp-multisite-root , который /subfolder/site1 не мог использовать.

Я вырыл ядро ​​WordPress, чтобы узнать, что мне нужно исправить, и в итоге я добавил этот код в свой собственный плагин, чтобы исправить пути, используемые для файлов cookie:

 define('COOKIEPATH', '/subfolder'); define('SITECOOKIEPATH', '/subfolder'); 

В моем случае моя структура сайта на самом деле похожа на Piemol, поэтому я установил пути для файлов cookie как root:

 define('COOKIEPATH', '/'); define('SITECOOKIEPATH', '/'); 

Самое простое решение – создать my-domain/subfolder/ WordPress и базовый URL-адрес, а затем включить multisite, чтобы использовать подкаталоги.

Я пытался сделать подобное, и из всего, что я обнаружил до сих пор, я думаю, что ответ отрицательный, в настоящее время это невозможно 🙁