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' );
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' );
新闻资讯 更多
- 【wordpress教程】WordPress跟踪记录访客在网站的搜索词 优化网站内容和搜索体验03-31
- 【wordpress教程】Zibll子比主题的用户中心修改头像增加支持上传PNG图片文件03-31
- 【wordpress教程】wordpress报错429怎么办03-28
- 【wordpress教程】wordpress如何批量删除指定分类目录下的所有文章03-23
- 【wordpress教程】Wordpress 在文章内容的第二段后面插入广告03-03
- 【wordpress教程】WordPress纯代码禁止发表重复标题的文章03-03
- 【wordpress教程】给wordpress博客-VIEU主题评论框添加打字特效(其他主题类似)03-03
- 【wordpress教程】wordpress自动批量定时发布插件 DX-auto-publish02-08
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法