簡體   English   中英

WordPress自定義插件代碼未運行

[英]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' );

取自http://codex.wordpress.org/Creating_Tables_with_Plugins

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM