wordpress知识库
网站首页 > 知识库 > wordpress知识 >

wordpress创建一个新的数据表

2014/09/30

要在wordpress中创建新的数据表,可以使用dbDelta函数,该函数旨在允许向wordpress数据库添加表。以下是wordpress创建数据表的两种方法:

方法一:通过插件形式创建新的数据表:

第一步、创建自定义插件:
首先,需要创建一个自定义wordpress插件。可以在插件目录中创建一个新的PHP文件(通常是wp-content/plugins/)。以本示例为例,我们将其命名为”custom-table-plugin.php”。

第二步、编写创建表的代码:
在”custom-table-plugin.php”文件中,可以编写使用dbDelta函数创建新表的代码。以下是代码示例:

<?php
/*
Plugin Name: Custom Table Plugin
*/

global $wpdb;
$table_name = $wpdb->prefix . 'your_table_name';
$charset_collate = $wpdb->get_charset_collate();

$sql = "CREATE TABLE $table_name (
    id mediumint(9) NOT NULL AUTO_INCREMENT,
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
    name tinytext NOT NULL,
    PRIMARY KEY  (id)
) $charset_collate;";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
?>

 第三步、激活插件:
保存”custom-table-plugin.php”文件后,转到wordpress管理面板并激活插件。

通过按照这些步骤操作,使用自定义插件在wordpress数据库中创建了一个新表。

方法二:通过插件形式创建新的数据表:

在wordpress主题函数中直接创建新的数据表是可能的,但这并不是推荐的做法,因为主题应该专注于外观和布局而不是与数据库交互。通常情况下,这样的操作更适合作为插件来实现。然而,如果坚持要在主题函数中执行此操作,以下是一个简单的示例:

// functions.php 文件中

global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$table_name = $wpdb->prefix . 'your_table_name';

$sql = "CREATE TABLE $table_name (
    id mediumint(9) NOT NULL AUTO_INCREMENT,
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
    name tinytext NOT NULL,
    PRIMARY KEY  (id)
) $charset_collate;";

require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);

将上述代码添加到的主题的functions.php文件中。请记住,这种方法并不标准,因为主题的职责应该是处理外观和显示数据,而不是对数据库进行管理。最好的做法是将数据库相关的操作放入自己的插件中。