无法创建新的Wordpress数据库表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法创建新的Wordpress数据库表相关的知识,希望对你有一定的参考价值。
谁能帮我弄清楚为什么wordpress在激活我的插件时不创建 "my_notes "表。
<?php
/* NOTES */
function dashboard_my_notes()
{
global $wpdb;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
$table_name = $wpdb->prefix . 'my_notes';
$sql = "CREATE TABLE IF NOT EXISTS $table_name(
id int(10) unsigned NOT NULL AUTO_INCREMENT,
date_notes DATE NOT NULL DEFAULT CURRENT_DATE,
status LONGTEXT NOT NULL,
notes varchar(9999) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (id)
);";
dbDelta($sql);
}
add_action( 'plugins_loaded', 'dashboard_my_notes' );
答案
我认为你应该把require_once放在dbDelta($sql)上面的一行。你也把$table_name作为一个字符串。如果你得到的错误是upgrade.php找不到,请尝试使用 ABSPATH . '/wp-admin/includes/upgrade.php'
所以在wp-admin之前有一个。
EDIT: 我对你的sql语句做了一些修改,因为你的错误告诉我们要看看它。请尝试,如果你的数据库表被创建。
<?php
/* NOTES */
function dashboard_my_notes()
{
global $wpdb;
$table_name = $wpdb->prefix.'my_notes';
$sql = "CREATE TABLE ".$table_name."(
id mediumint(9) NOT NULL AUTO_INCREMENT,
date_notes datetime NOT NULL,
status longtext NOT NULL,
notes text NOT NULL,
UNIQUE KEY id (id)
);";
require_once(ABSPATH . '/wp-admin/includes/upgrade.php');
dbDelta($sql);
}
add_action( 'plugins_loaded', 'dashboard_my_notes' );
以上是关于无法创建新的Wordpress数据库表的主要内容,如果未能解决你的问题,请参考以下文章
markdown 在WordPress中使用jQuery代码片段
Wordpress - 将代码片段包含到布局的选定部分的插件