当前位置:首页 > 建站教程 > WordPress插件制作教程(四): 将数据保存到数据库

WordPress插件制作教程(四): 将数据保存到数据库

2年前 (2024-09-07)建站教程1380
上一篇讲解了添加菜单的方法,这一篇为大家讲解如何将数据保存到数据库中,并且显示在页面上,不会因提交表单时刷新页面输入框中内容消失。要实现这一功能我们需要借助WordPress函数来实现,下面就来讲解具体的实现方法,先把代码贴出来。还是根据之前的那个插件样例,大家可以直接在上面做修改。    
// 在WordPress后台评论处添加一个子菜单
add_action('admin_menu', 'comments_submenu');
function comments_submenu() {
    add_comments_page(__('数据保存'), __('数据保存'), 'read', 'my-unique-identifier-datasave', 'add_comments_submenu');
}

// WordPress后台评论处菜单page
function add_comments_submenu(){
   if($_POST['test_hidden'] == 'y') {
       update_option('test_input_c',$_POST['test_insert_options']); //更新你添加的数据库
?>
     <div id="message" style="background-color: green; color: #ffffff;">保存成功 !</div>
<?php
   }
?>
  <div>
      <?php screen_icon(); //显示图标  ?>
      <h2>添加数据</h2>
      <form action="" method="post" id="my_plugin_test_form">
          <h3>
              <label for="test_insert_options">输入测试数据:</label>
              <input type="text" id="test_insert_options" name="test_insert_options" value="<?php  echo esc_attr(get_option('test_input_c')); ?>"  />
          </h3>
          <p>
              <input type="submit" name="submit" value="保存" class="button button-primary" />
              <input type="hidden" name="test_hidden" value="y"  />
          </p>
      </form>
  </div>
<?php
}

// 通过get_option()来显示存在数据库中的信息。
// 以上填写的信息都存在了数据库中的wp_options表里面。
上面简短的代码就实现了数据保存并显示的功能,通过这个功能我们就可以延伸到其他的方法或者功能上面。比如一些不错的主题都带有主题设置,里面的一些显示和存储都可以用上面的方法来实现,大家可以多多去尝试下。   2. 创建自定义插件设置菜单,实现options表的字段的更新设置:如图    
<?php
// 创建自定义插件设置菜单
add_action('admin_menu', 'baw_create_menu');
function baw_create_menu() {
    // 创建新的顶级菜单
    add_menu_page('BAW Plugin Settings', 'BAW Settings', 'administrator', __FILE__, 'baw_settings_page', '');
    // 调用注册设置函数
    add_action( 'admin_init', 'register_mysettings' );
}

function register_mysettings() {
    // 注册我们的设置
    register_setting( 'baw-settings-group', 'new_option_name' );
    register_setting( 'baw-settings-group', 'some_other_option' );
    register_setting( 'baw-settings-group', 'option_etc' );
}

function baw_settings_page() {
?>
<div class="wrap">
<h2>你的插件名称</h2>

<form method="post" action="options.php">
    <?php settings_fields( 'baw-settings-group' ); // 设置字段 这个函数取代了 nonce magic, action field, and page_options ?>
    <?php do_settings_sections( 'baw-settings-group' ); // 这个函数取代了表单字段标记形式本身 ?>
    <table class="form-table">
        <tr valign="top">
        <th scope="row">New Option Name</th>
        <td><input type="text" name="new_option_name" value="<?php echo esc_attr( get_option('new_option_name') ); ?>" /></td>
        </tr>
         
        <tr valign="top">
        <th scope="row">Some Other Option</th>
        <td><input type="text" name="some_other_option" value="<?php echo esc_attr( get_option('some_other_option') ); ?>" /></td>
        </tr>
        
        <tr valign="top">
        <th scope="row">Options, Etc.</th>
        <td><input type="text" name="option_etc" value="<?php echo esc_attr( get_option('option_etc') ); ?>" /></td>
        </tr>
    </table>
    <?php submit_button(); ?>
</form>
</div>
<?php }?>
 

WordPress 选项机制

参阅Creating Options Pages,你将学会如何去创建一个自动保存选项数据的页面。 WordPress有一个"选项"机制,用于保存、更新以及检索那些独立的,具有特定名称的数据。选项的值可以是字符串、数组,甚至是PHP对象(当然,PHP对象在保存时必须能够被序列化或转换成字符串,检索的时候也必须能够被反序列化)。选项的名称必须是字符串,且必须是唯一的,这样才能够确保它们不会和WoredPress或其它插件产生冲突。 通常情况下,你最好能够对插件选项的数量进行一下精简。例如,如果你有10个不同名称的选项需要保存到数据库中,那么,你就可以考虑将这10个数据作为一个数组,并保存到数据库的同一个选项中。 以下是让你的插件使用选项机制的主要函数:
add_option($name, $value, $deprecated, $autoload);
// 官方文档: http://codex.wordpress.org/Function_Reference/add_option
// 创建一个新的选项并保存到数据库中,若选项已存在,则不进行任何操作。
// $name 必要参数(string)。要创建的选项的名称。
// $value 可选参数(string)。要创建的选项的值。默认值为空字符串。
// $deprecated 可选参数(string)。该选项是否已经过期。若需要让后面的$autoload参数生效,则该参数必须传入空字符串或null。
// $autoload 可选参数(enum: 'yes' or 'no')。是否自动加载该选项。若设置为 'yes',则该选项会被get_alloptions 函数自动检索到。默认值为 'yes'。

delete_option($option);
// 官方文档: http://codex.wordpress.org/Function_Reference/delete_option
// $option 必要参数(string) 选择要删除的选项的名称。有效的默认选项的列表可以在Option Reference选择参考。

update_option($option_name, $newvalue);
// 官方文档: http://codex.wordpress.org/Function_Reference/update_option
// 更新数据库中的选项值,若选项不存在,则创建该选项。
// (注意:如果你用不到$deprecated和$autoload参数的话,那么大可不必使用add_option函数)。
// $option_name 必要参数(string)。要更新/创建的选项名称。
// $newvalue 必要参数(string|array|object)。要更新/创建的选项的值。

get_option($option);
// 官方文档: http://codex.wordpress.org/Function_Reference/get_option
// 从数据库中获取指定选项的值。
// $option 必要参数(string)。选项的名称。你可以在Option Reference中找到与WordPress一同安装的默认选项列表。
"admin_email"——博客管理员的电子邮件地址。
"blogname"——博客标题,一般设置选项。
"blogdescription"——为你的博客标语;一般设置选项。
为你的博客"blog_charset"——字符编码;设置在阅读选项。
"date_format"——默认日期格式,一般设置选项。
"default_category"——默认文章类别;书面设置选项。
"home"——博客的网址,一般设置选项。
中的"siteurl"——WordPress网站地址,一般设置选项。
    警告:这不是一样get_bloginfo(中的"siteurl")(将返回主页url),但随着get_bloginfo("wpurl")。
"template"——当前主题的名字,表示。
"start_of_week"——天星期日历应该开始,一般设置选项。
"upload_path"——默认上传位置;设置在杂项选项。
"posts_per_page"——最大数量的帖子显示在页面上,设置在阅读选项。
"posts_per_rss"——最大数量的最近的帖子显示聚合提要;设置在阅读选项。
可以有更多的选择,这取决于你有什么插件安装。访问/ wp-admin /选项。php页面的完整列表。
强调独立的单词,小写字母只有——这将是在数据库中。

  本章总结: 1. 本章主要介绍add_option()、delete_option()、 update_option(),、get_option() 四个函数的方法 2. 官方文档 参考:https://codex.wordpress.org/Function_Reference Options  

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/9962

分享给朋友:

“WordPress插件制作教程(四): 将数据保存到数据库” 的相关文章

php有哪些框架

php有哪些框架

php框架有:1、Laravel框架;2、Symfony框架;3、CodeIgniter框架;4、Yii框架;5、Phalcon框架;6、CakePHP、Zend Framework、Slim框架等等。 本教程操作环境:windows10系统、PHP8.1.3版本、Dell G3电脑。...

两款值得采用的WordPress企业官网主题

两款值得采用的WordPress企业官网主题

如今我们企业官网建设是不是还需要请网络公司搭建?于是可能还会被报价几千甚至几万。遇到小的网络公司或者个人服务商,可能会直接从网上找一些免费主题修修改改,或者是其他客户的改头换面给你。其实这个时候会有很大的风险,比如找免费的主题用于企业网站会有版权风险,安全升级也没有保障,且成本比较高。 这里,...

WordPress中文主题选哪个比较好?几款轻便好用的WordPress中文主题推荐

WordPress中文主题选哪个比较好?几款轻便好用的WordPress中文主题推荐

目前,WordPress 应该算是全球免费开源CMS中使用量最大的程序,根据官方的数据统计有超过三分之一的网站用的WordPress程序。我们很多中文网站也会用WordPress程序,比如企业网站、自媒体博客、内容网站,包括很多的电商B2C网站也会用到。老左个人认为选择WordPress程序的原因在...

外贸独立网站用哪个程序比较好?4个适合跨境电商独立网站程序推荐

外贸独立网站用哪个程序比较好?4个适合跨境电商独立网站程序推荐

前两年我们看到有不少的网友反馈到,在亚马逊上的网店遭受被封的风险,于是很多人开始又重新搭建独立网站的跨境电商网站。这个情况还是早十几年前,那时候仿牌外贸网站流行的时候,我们会选择自己搭建独立的B2C网站平台。如今是不是又回归。在选择搭建网站的时候,对于虚拟主机、独立服务器产品选择比以前更为熟悉,但是...

使用 WP Downgrade 在线降级 WordPress 到旧版本!

我们都知道,每当WordPress有新本的时候,我们都可以在后台一键更新。但是有些时候,我们的主题或插件可能不兼容新版本的WP,这时候我们如果要降级为之前的旧版本,该怎么操作呢?下面一起来看看。 重要提示:不管是升级还是降级,操作前,请务必备份你的网站数据,尤其是网站的数据库,以防万一!...

WordPress 如何批量修改文章信息?

你是否遇到过如下几种状况: 博客更换域名,博客文章的内容也要跟着换 使用的图片地址更换了 写了很多文章,回过头来想切换作者 想删除某个可恶留言者的所有留言 想更改某个留言者所有留言的网站URL 想要禁用所有文章的pingback 想要禁用所有文章的评...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。