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

下面是一个简单的 WordPress 插件示例,它将在启用的时候创建对应的数据表:

  1. 创建一个名为 my-database-plugin 的文件夹,并在其中创建一个名为 my-database-plugin.php 的文件。

  2. 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' );
© 版权声明
THE END
喜欢就支持一下吧
点赞6
评论 抢沙发

请登录后发表评论

    暂无评论内容