下面是一個簡單的 WordPress 插件示例,它將在啓用的時候創建對應的數據表:
創建一個名爲
my-database-plugin的文件夾,並在其中創建一個名爲my-database-plugin.php的文件。在
my-database-plugin.php文件中添加以下代碼:<?php /** * Plugin Name: 紅穆插件 * Plugin Script: hongmu-zibi.php * Plugin URI: http://4s5.cn * Description: 開發插件的示範 * Version: 1.3.0 * License: GPL * Author: 紅穆 * Author URI: http://4s5.cn/ * Text Domain: hongmu-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' );