上一篇文章介绍了WordPress后台的常用样式,这次给大家分享的是利用WordPress开发一个插件界面 效果图如下
功能和界面都比较简单,但体现了一套完整的插件页面开发流程!
步骤
1.在wp-content/plugins目录下新键插件文件 test_install.php
2.键入如下代码添加左侧菜单
<?php
/*
Plugin Name:test_install
Description:这是描述
Author:tzh
Version:0.0.1
*/
// 创建菜单
add_action('admin_menu','my_create_menu');
function my_create_menu(){
//一级菜单
add_menu_page(
'字体颜色',
'字体颜色',
'manage_options',
'my_menus',
'create_menus'
);
}
function create_menus(){
}
add_menu_page
参数从上到下依次说明
1.菜单标题(页面标题)
2.菜单名称
3.浏览该菜单的权限(manage_options表示管理员)
4.菜单别名
5.菜单显示的页面 调用哪个方法来显示
6.菜单图标(图标url)
我们也可以使用 add_submenu_page
创建子菜单
add_submenu_page(
'my1',
'one',
'one',
'manage_options',
'mysub_menu',
'my_settings_sub'
);
参数说明 1.父级菜单(父级菜单别名) 2.菜单标题 3.菜单名称 4.浏览该菜单的权限 5.菜单别名 6.菜单显示的页面 调用哪个方法来显示 7.菜单图标
本文没有创建子菜单
保存设置,在后台界面->插件->激活test_install插件
激活后左侧菜单栏多出一个选项 “字体颜色”
点击“字体颜色” 后发现页面是空的,这是因为我们还没有创建页面 在create_menus
方法键入如下代码
function create_menus(){
?>
<div class="wrap">
<h2>站点字体颜色</h2>
<form action="" method="post">
<p>
<label for="color">字体颜色
<input type="text" name="color" value="<?php echo '12'; ?>">
</label>
</p>
<button type="submit" class="button">提交</button>
</form>
</div>
<?php
}
在次点击 “字体颜色” 页面显示如下
到此静态页面搭建完毕 我们要使数据动起来,就得操作数据库 在 test_install.php键入如下代码 创建wp_test
表
register_activation_hook(__FILE__,'test_install'); //插件被启用时调用test_install函数
function test_install(){
global $wpdb;
if($wpdb->get_var("show tables like `{$wpdb->prefix}test`") != "{$wpdb->prefix}test"){
$sql = "create table if not exists `{$wpdb->prefix}test`(
id int(11) not null auto_increment comment '编号',
color varchar(30) default '' comment '字体颜色',
size varchar(20) default '' comment '字体大小',
primary key (id)
)default charset=utf8 engine=innodb;";
$wpdb->query($sql);
}
}
上面代码在插件被启用时会为我们创建一个wp_test表,有关该插件的数据都存放在这个表中
接下来我们向数据库利用客户端工具向数据库写入假数据(略) 将数据库的数据读取出来
代码语言:javascript复制function create_menu(){
global $wpdb;
$sql = "select * from `{$wpdb->prefix}test`";
$row = $wpdb->get_row($sql);
$color =$row->color;
?>
<div class="wrap">
<h2>站点字体颜色</h2>
<form action="" method="post">
<p>
<label for="color">字体颜色
<input type="text" name="color" value="<?php echo $color; ?>">
</label>
</p>
...
}
此时页面展示的是数据库的数据
接下来我们要进行数据修改并将修改后的数据更新到数据库中
代码语言:javascript复制function create_menus(){
global $wpdb;
//处理页面提交 提交不为空 并且通过验证
if(!empty($_POST) && check_admin_referer('test_once')){
//更新设置
$wpdb->update("{$wpdb->prefix}test" ,array('color'=>$_POST['color']),array('id'=>1));
?>
<div class="notice notice-updated">
<p><strong>保存成功</strong></p>
</div>
<?php
}
$sql = "select * from `{$wpdb->prefix}test`";
$row = $wpdb->get_row($sql);
$color =$row->color;
$size = $row->size;
?>
<div class="wrap">
<h2>站点字体颜色</h2>
<form action="" method="post">
<p>
<label for="color">字体颜色
<input type="text" name="color" value="<?php echo $color; ?>">
</label>
</p>
<button type="submit" class="button">提交</button>
<!-- 表单验证信息,只限于当前页面提交 -->
<?php wp_nonce_field('test_once');?>
</form>
</div>
<?php
}
上述代码我们在当前页面接收POST数据,并进行表单验证限制只能在当前页面提交,防止通过url恶意提交 主要用到方法 wp_nonce_field('test_once') 和 check_admin_referer('test_once')
此时提交的数据可以正常更新到数据库,到此一套完成的插件页面开发流程完毕