我现在在我们的一个网站上遇到了一个奇怪的问题。对于临时站点设置,我们从子域多站点安装切换到子文件夹安装。因此,所有URL都来自此:
site.website.com
到这个
staging.otherwebsite.com/site
问题是Wordpress似乎无法识别其他网站的标题和链接。它显示了10个站点,但它们都与主博客有相同的信息(相同的标题和指向仪表板编辑屏幕的相同链接)。
我尝试过更改配置文件以支持子文件夹多站点:
define(\'WP_ALLOW_MULTISITE\', true);
define( \'MULTISITE\', true );
define( \'SUBDOMAIN_INSTALL\', false );
$base = \'/\';
define( \'DOMAIN_CURRENT_SITE\', \'staging.otherwebsite.com\' );
define( \'PATH_CURRENT_SITE\', \'/\' );
define( \'SITE_ID_CURRENT_SITE\', 1 );
define( \'BLOG_ID_CURRENT_SITE\', 1 );
我还必须更改数据库表。我进入并更改了中每个站点的路径列
wp_blogs
表,使其与正确的结构相匹配。我想我也为
wp_site
还有桌子。
我的htaccess文件如下所示:
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
RewriteRule . index.php [L]
wordpress在菜单中显示所有站点,好像它们都有相同的标题和链接(基本上显示主站点10次,与我的站点数量相同),这可能是什么原因造成的?在将子域安装切换到子文件夹安装时,是否遗漏了任何步骤?如果有任何其他信息,我可以提供让我知道,我会添加它。
谢谢
UPDATE
我发布了一个答案,但它不起作用。。。充分地它暂时解决了这个问题。在调用之前调用此函数时
get_blog_details
作用
现在是奇怪的部分,当我添加这个函数时wp_cache_flush()
在循环遍历每个博客id之前get_blog_details()
函数返回相同的日志详细信息。
当我在获取日志详细信息之前在循环中添加缓存刷新时,我会为每个日志获取适当的日志详细信息。当我删除flush函数时,问题又出现了。
我一直在研究这一点,以了解原因。关于这件事的任何细节都会帮助我度过难关。
最合适的回答,由SO网友:JoeMoe1984 整理而成
在深入研究wordpress核心文件之后,我发现在获取博客详细信息的过程中,有一个缓存功能。
是这一行ms-blogs.php
文件
$details = wp_cache_get( $blog_id . $all, \'blog-details\' );
事实证明,我有一个缓存版本的博客详细信息,这把以前安装的一些东西搞砸了。我检查了
wp-config.php
文件和我确实启用了W3缓存。我通过冲洗暂时修复了它。我添加了此代码。
global $wp_object_cache;
$wp_object_cache->flush();
重新加载页面后,我注意到博客详细信息显示正确。
Update
好吧,我想这次我真的把它修好了。我禁用了w3缓存插件,但它对我不起作用,所以我认为问题来自其他地方。经过多次尝试和错误后,我进入了插件文件夹,并决定将w3cache插件文件夹重命名为其他文件夹。这显然解决了问题。我猜尽管Wordpress禁用了插件,但还是有东西引用了插件。
文件advanced-cache.php
和object-cache.php
需要删除才能停止引用w3caching插件。
您可以再次添加插件,它可能会再次运行。
我只是想分享一下,因为这让我有一段时间发疯了。