下面是一个简单的 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' );