wordpresss插件创建与删除数据表

十度 wordpress 2015年12月20日 收藏

wordpress在开发插件过程有时候需要创建自定义的数据表,实现方法很简单,将以下代码放于你的插件文件中即可:

  1. <?php
  2. function plugin_name_activation() {
  3. require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
  4. global $wpdb;
  5. $db_table_name = $wpdb->prefix . 'table_name';
  6. if( $wpdb->get_var( "SHOW TABLES LIKE '$db_table_name'" ) != $db_table_name ) {
  7. if ( ! empty( $wpdb->charset ) )
  8. $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
  9. if ( ! empty( $wpdb->collate ) )
  10. $charset_collate .= " COLLATE $wpdb->collate";
  11. $sql = "CREATE TABLE " . $db_table_name . " (
  12. `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  13. `type` varchar(100) NOT NULL DEFAULT '',
  14. `extra` longtext NOT NULL,
  15. `date_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  16. PRIMARY KEY (`id`)
  17. ) $charset_collate;";
  18. dbDelta( $sql );
  19. }
  20. }
  21. register_activation_hook(__FILE__, 'plugin_name_activation');
  22. ?>

插件卸载时删除表代码:

  1. function pluginUninstall() {
  2.  
  3. global $wpdb;
  4. $table = $wpdb->prefix."your_table_name";
  5.  
  6. //Delete any options thats stored also?
  7. //delete_option('wp_yourplugin_version');
  8.  
  9. $wpdb->query("DROP TABLE IF EXISTS $table");
  10. }
  11. register_deactivation_hook( __FILE__, 'pluginUninstall' );