前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress二次开发之插件界面

WordPress二次开发之插件界面

作者头像
切图仔
发布2022-09-14 15:34:30
5810
发布2022-09-14 15:34:30
举报
文章被收录于专栏:生如夏花绚烂

上一篇文章介绍了WordPress后台的常用样式,这次给大家分享的是利用WordPress开发一个插件界面 效果图如下

功能和界面都比较简单,但体现了一套完整的插件页面开发流程!

步骤

1.在wp-content/plugins目录下新键插件文件 test_install.php 2.键入如下代码添加左侧菜单

代码语言:javascript
复制
<?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 创建子菜单

代码语言:javascript
复制
add_submenu_page(
        'my1',
        'one',
        'one',
        'manage_options',
        'mysub_menu',
        'my_settings_sub'
    );

参数说明 1.父级菜单(父级菜单别名) 2.菜单标题 3.菜单名称 4.浏览该菜单的权限 5.菜单别名 6.菜单显示的页面 调用哪个方法来显示 7.菜单图标

本文没有创建子菜单

保存设置,在后台界面->插件->激活test_install插件

激活后左侧菜单栏多出一个选项 “字体颜色”

点击“字体颜色” 后发现页面是空的,这是因为我们还没有创建页面 在create_menus 方法键入如下代码

代码语言:javascript
复制
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

代码语言:javascript
复制
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')

此时提交的数据可以正常更新到数据库,到此一套完成的插件页面开发流程完毕

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档