[英]Wordpress Custom Plugins Code not Running
我正在嘗試在wordpress中創建一個自定義插件,在其中創建表並使用pluging插入數據。表已成功創建,但數據未插入表中。 這是我的代碼
global $jal_db_version;
$jal_db_version = "1.0";
function jal_install() {
global $wpdb;
global $jal_db_version;
$table_name = $wpdb->prefix . "demo1";
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id int(9) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;";
$wpdb->query($sql);
pu_insert_custom_table($table_name);
}
function pu_insert_custom_table($table_name)
{
global $wpdb;
$wpdb->insert(
'$table_name',
array(
'name'=>'abc',
'email'=>'abc@gmail.com',
'password'=>'123456'
),
array(
'%s',
'%s',
'%s'
)
);
}
您需要將插入查詢修改為:
$wpdb->insert(
$table_name,
array(
'name'=>'abc',
'email'=>'abc@gmail.com',
'password'=>'123456'
),
array(
'%s',
'%s',
'%s'
)
);
您可以嘗試一下:
<?php
global $jal_db_version;
$jal_db_version = '1.0';
function jal_install() {
global $wpdb;
global $jal_db_version;
$table_name = $wpdb->prefix . 'liveshoutbox';
$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,
text text NOT NULL,
url varchar(55) DEFAULT '' NOT NULL,
UNIQUE KEY id (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
add_option( 'jal_db_version', $jal_db_version );
}
function jal_install_data() {
global $wpdb;
$welcome_name = 'Mr. WordPres';
$welcome_text = 'Congratulations, you just completed the installation!';
$table_name = $wpdb->prefix . 'liveshoutbox';
$wpdb->insert(
$table_name,
array(
'time' => current_time( 'mysql' ),
'name' => $welcome_name,
'text' => $welcome_text,
)
);
}
然后像這樣用wordpress鈎子分別調用這些函數:
register_activation_hook( __FILE__, 'jal_install' );
register_activation_hook( __FILE__, 'jal_install_data' );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.