通过WordPress Multisite网络实现多个不同网站调用同一个数据表的完整方案,包含详细的操作步骤,适合纯小白:

准备工作

  • 一台已经安装好 WordPress 的服务器,确保服务器满足 WordPress 运行的基本要求(如 PHP、MySQL 等)。

  • 具备对服务器文件和数据库的访问权限,可通过 FTP 工具(如 FileZilla)访问文件,通过 phpMyAdmin 等工具管理数据库。

步骤 1:启用 Multisite 功能

1.1 修改 wp - config.php 文件

  • 使用 FTP 工具连接到服务器,找到 WordPress 网站的根目录。

  • 找到 wp-config.php 文件,将其下载到本地。

  • 使用文本编辑器(如 Notepad++)打开 wp-config.php 文件,在 /* That's all, stop editing! Happy publishing. */ 这行代码之前添加以下代码:

define('WP_ALLOW_MULTISITE', true);
  • 保存修改后的 wp-config.php 文件,并上传回服务器的原位置。

1.2 配置网络设置

  • 登录 WordPress 后台,在左侧菜单中找到 “工具”,点击后会出现 “网络设置” 选项,点击进入。

  • 选择网络类型

    • 子目录模式:例如 example.com/site1example.com/site2 等。如果你没有自己的域名或者不想使用子域名,可选择此模式。

    • 子域名模式:例如 site1.example.comsite2.example.com 等。若要使用子域名模式,需要先在域名管理面板中设置好泛解析(将 *.example.com 解析到服务器的 IP 地址)。

  • 填写网络信息:输入网络标题(如你的网站网络名称)和管理员邮箱,然后点击 “安装” 按钮。

  • 修改配置文件:安装完成后,页面会显示需要对 wp-config.php.htaccess 文件进行的修改内容。

    • 修改 wp - config.php 文件:再次使用 FTP 工具下载 wp-config.php 文件,将页面提示的代码添加到文件中,然后保存并上传回服务器。

    • 修改 .htaccess 文件:如果服务器使用的是 Apache,找到网站根目录下的 .htaccess 文件(若不存在则创建一个),将页面提示的代码复制到文件中,保存并上传回服务器。

步骤 2:创建新站点

  • 登录 WordPress 后台,在左侧菜单中会出现 “我的网站” 选项,点击展开后选择 “添加新站点”。

  • 填写站点信息

    • 域名:如果是子目录模式,填写子目录名称;如果是子域名模式,填写子域名。

    • 路径:一般保持默认即可。

    • 标题:填写新站点的标题。

    • 管理员邮箱:填写该站点的管理员邮箱。

  • 点击 “添加站点” 按钮,新站点就创建成功了。

步骤 3:访问同一个数据表

在 WordPress Multisite 网络中,所有站点默认共享同一个数据库,因此可以直接访问相同的数据表。以下是在代码中访问数据表的示例:

3.1 在主题文件中添加代码

  • 使用 FTP 工具进入新站点对应的主题目录(通常在 wp-content/themes/your-theme-name 下)。

  • 打开一个 PHP 文件(如 index.phpsingle.php),在需要的位置添加以下代码:

global $wpdb;
// 假设要访问的表名为 wp_posts
$table_name = $wpdb->prefix . 'posts';
$results = $wpdb->get_results("SELECT * FROM $table_name");
if ($results) {
    foreach ($results as $result) {
        // 处理查询结果,例如输出文章标题
        echo $result->post_title;
    }
}
  • 保存文件并上传回服务器,刷新网站页面,即可看到数据表中的数据被显示出来。

步骤 4:注意事项

  • 数据表前缀:不同站点的数据表前缀可能不同,可通过 $wpdb->prefix 获取当前站点的数据表前缀。

  • 权限管理:在 Multisite 网络中,需要注意不同站点的权限设置,确保只有授权用户可以访问和修改数据。

  • 数据安全:由于多个站点共享同一个数据库,要注意数据的安全性,定期备份数据库,防止数据丢失或被篡改。

通过以上步骤,你就可以利用 WordPress Multisite 网络实现多个不同网站调用同一个数据表。