详情页

wordpress 插件开发之创建对应的数据表

时间:2023年09月22日

编辑:佚名

下面是一个简单的 WordPress 插件示例,它将在启用的时候创建对应的数据表:
1、创建一个名为 my-database-plugin 的文件夹,并在其中创建一个名为 my-database-plugin.php 的文件。
2、在 my-database-plugin.php 文件中添加以下代码:
<?php
/**
 * Plugin Name: wordpress插件
 * Plugin Script: wordpress-zibi.php
 * Plugin URI: http://78moban.com
 * Description: 开发插件的示范
 * Version: 1.3.0
 * License: GPL
 * Author: wordpress
 * Author URI: http://78moban.com/
 * Text Domain: wordpress-zibi
 */
// 如果直接访问该文件则退出。
if ( ! defined( 'ABSPATH' ) ) {
  exit;
}
/**
 * 定义数据库表名。
 */
global $wpdb;
define( 'MY_DATABASE_TABLE', $wpdb->prefix . 'my_database_table' );
/**
 * 在插件激活时创建数据库表。
 */
function my_database_plugin_activate() {
  global $wpdb;
  $table_name = MY_DATABASE_TABLE;
  $charset_collate = $wpdb->get_charset_collate();
  $sql = "CREATE TABLE $table_name (
    id int(11) NOT NULL AUTO_INCREMENT,
    name varchar(255) NOT NULL,
    email varchar(255) NOT NULL,
    PRIMARY KEY  (id)
  ) $charset_collate;";
  require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
  dbDelta( $sql );
}
register_activation_hook( __FILE__, 'my_database_plugin_activate' );
/**
 * 在插件停用时删除数据库表。
 */
function my_database_plugin_deactivate() {
  global $wpdb;
  $table_name = MY_DATABASE_TABLE;
  $wpdb->query( "DROP TABLE IF EXISTS $table_name" );
}
register_deactivation_hook( __FILE__, 'my_database_plugin_deactivate' );
/**
 * 添加插件菜单页面。
 */
function my_database_plugin_menu() {
  add_menu_page(
    '我的数据库插件',
    '我的数据库插件',
    'manage_options',
    'my-database-plugin',
    'my_database_plugin_page',
    'dashicons-database',
    30
  );
}
add_action( 'admin_menu', 'my_database_plugin_menu' );
相关文章
猜你需要