子文件夹中的多站点-如何使新站点与主站点位于同一级子文件夹中

时间:2013-10-20 作者:HoGo

我有以下情况。我在子目录中安装了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
还有一个窍门。我的域名。com/子文件夹/包含另一个非wordpress应用程序。

4 个回复
SO网友:Piemol

这些年后,我希望这仍然能回答你的问题。。。

我想我已经找到了你想要的情况。虽然我没有在“/子文件夹/”中安装Wordpress,但我在每种语言的“子目录”中安装了Wordpress,并且安装级别相同:

 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
这需要对数据库进行一些“黑客”操作,但非常简单。

Step 1:确保多站点“root”安装在其子目录中按预期工作。在我的例子中,我在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);
(实际上我没有“/子文件夹”:)

Step 2:现在,通过子文件夹中的多站点创建您的第一个新站点。当输入foldername“site2”时,Wordpress告诉您它将被创建为:my domain。com/subfolder/wp multisite root/site2如果正确,我们将手动删除“wp multisite root”文件夹

Step 3:在表中打开phpMyAdmin/directAdminwp_blogs 编辑新创建站点的条目。我们必须修改path 是的。可以通过以下查询完成:

UPDATE `wp_blogs` SET `path` = \'/site2/\' WHERE `wp_blogs`.`path` = \'/wp-multisite-root/site2/\';
相应地更改域名和站点名称。还要查找此处提到的站点id。如果这是第一个额外创建的网站,它将是ID 2,如我的简介中所示。

Step 4:看看桌子wp_<SITEID>_options.在我们的站点ID为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\';
同样,请相应地更改域名和文件夹名。您会注意到,我们从url中删除了“wp multisite root”,因此site2将与“wp multisite root”处于同一级别。

Step 5:刷新wp admin,您的站点将按您的需要列出。

SO网友:caramiki

皮埃莫尔的回答很好,对我很有用。然而,除了主站点外,我无法登录我的任何站点。在检查我的cookie时,我发现WordPress只为我的主站点而不是其他子目录制作cookie。以OP为例,它为/subfolder/wp-multisite-root, 哪一个/subfolder/site1 无法使用。

我通过WordPress core查看需要修复的内容,最后将此代码添加到我的自定义插件中,以修复用于cookie的路径:

define(\'COOKIEPATH\', \'/subfolder/\');
define(\'SITECOOKIEPATH\', \'/subfolder/\');
在我的例子中,我的站点结构实际上类似于Piemol,因此我将cookie路径固定为根路径:

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

SO网友:Chip Bennett

最简单的解决方案是my-domain/subfolder/ WordPress安装目录和基本URL,然后启用配置为使用子目录的多站点。

SO网友:Peter Smith

我一直在尝试做类似的事情,从目前为止我所发现的一切来看,我认为答案是否定的,这目前是不可能的:(

结束

相关推荐

Copy Root Multisite Site

我在WordPress中创建了一个多站点安装,位于example.com 网站位于example.com/site1, example.com/site2 等是否可以创建example.com 在example.com/site3?Blog Copier 和NS cloner 由于某种原因,不允许您创建根站点的副本。这背后的技术限制是什么?