woocommerce成员资格插件使用post表存储其数据,但该插件中的几乎所有查询都将包含wc_membership
在其中(他们在所有post\\u类型中都使用它,但它可能无法捕获所有meta\\u查询,需要测试,查看是否发生任何错误或丢失的数据,在不包含wc\\u成员身份的查询中找到插件使用的所有meta键,并将其添加到strpo)
因此,没有关联的表和清晰的数据分隔,您可以使用它们将其正确加载到子域中。
但是,您可以使用查询过滤器替换前缀来查找正确的表,您需要确保子网站上的前缀确实是唯一的,并且足够长,这样它就不会干扰查询的其余部分(例如:2VXOJU8Nxo\\uuxo)
然后在您的子网站上安装,您将添加此过滤器
add_filter(\'query\', function($query) {
global $wpdb;
if (strpos($query, \'wc_membership\') !== false) {
$query = str_replace($wpdb->prefix, \'main_website_prefix\', $query);
}
return $query;
});
免责声明:这不是一个非常安全的解决方案,但几乎是您提议的配置中唯一可能的解决方案
另一个更安全的解决方案是,不要为子域使用另一个wordpress实例,而是使用同一个实例
并制作或找到一个插件,以便能够对您的内容进行分类,并在正确的网站上显示正确的内容
就像多站点安装一样(memberships插件不支持多站点)
您还可以询问插件的创建者是否愿意为其插件添加多站点支持,以便多站点安装可以共享相同的成员身份,这将解决您的问题