上一篇教程中,我们添加了简单的设置选项,数据的保存我们是直接提交到 wp-admin/options.php 中的,对于数据的保存我们还可以使用一个专用的函数 update_option(),准确的说这个函数是更新设置选项数据的。这一篇教程还是比较重要的,因为我们后面将的教程中,都是使用 update_option 这个函数来保存、更新设置数据的。
函数用法如下:
- <?php
- update_option( $option, $newvalue );
- //$option 为选项名称
- //newvalue 为选项的值
- ?>
实例:我们使用上一篇教程的代码,(前面我们已经在默认的 Twenty Ten 主题中新建一个 myfuntions.php , 然后在 functions.php 文件中 include 新文件),打开 myfunctions.php 文件,去掉三个隐藏表单,去掉表单的的提交地址,也就是 form 标签中的 action 属性,之后代码如下:
- <?php
- function test_function(){
- add_theme_page( ‘ 阿树工作室’, ‘ 阿树工作室’, ‘administrator’, ‘ashu_slug’,’display_function’);
- }
- add_action(‘admin_menu’, ‘test_function’);
- function display_function(){ ?>
- <form method=“post” name=“ashu_form” id=“ashu_form”>
- <h2> 阿树工作室主题设置</h2>
- <p>
- <label>
- <input name=“ashu_copy_right” size=“40” value=“<?php echo get_option(‘ashu_copy_right’); ?>”/>
- 请输入文字
- </label>
- </p>
- <p class=“submit”>
- <input type=“submit” name=“option_save” value=“<?php _e(‘ 保存设置’); ?>” />
- </p>
- </form>
- <?php } ?>
下面我们在文件顶部再添加处理数据的代码:
- <?php
- $option = get_option(‘ashu_copy_right’);//获取选项
- if( $option == ” ){
- //设置默认数据
- $option = ‘ 阿树工作室’;
- update_option(‘ashu_copy_right’, $option);//更新选项
- }
- if(isset($_POST[‘option_save’])){
- //处理数据
- $option = stripslashes($_POST[‘ashu_copy_right’]);
- update_option(‘ashu_copy_right’, $option);//更新选项
- }
- ?>
注意:我们这里的例子只有一个设置选项,如果表单中提交了多个数据,可将数据放进一个数组中,这样获取数据的时候只需使用一次 get_option 函数即可,更新数据也只需要使用一次 update_option 函数,还有,这一篇文章的方法并不是可取的,如果你只有少量的数据,可以使用上一篇教程中的方法。
下面是 myfunctions.php 中的所有代码:
- <?php
- $option = get_option(‘ashu_copy_right’);//获取选项
- if( $option == ” ){
- //设置默认数据
- $option = ‘ 默认数据’;
- update_option(‘ashu_copy_right’, $option);//更新选项
- }
- if(isset($_POST[‘option_save’])){
- //处理数据
- $option = stripslashes($_POST[‘ashu_copy_right’]);
- update_option(‘ashu_copy_right’, $option);//更新选项
- }
- ?>
- <?php
- function test_function(){
- add_theme_page( ‘ 阿树工作室’, ‘ 阿树工作室’, ‘administrator’, ‘ashu_slug’,’display_function’);
- }
- add_action(‘admin_menu’, ‘test_function’);
- function display_function(){ ?>
- <form method=“post” name=“ashu_form” id=“ashu_form”>
- <h2> 阿树工作室主题设置</h2>
- <p>
- <label>
- <input name=“ashu_copy_right” size=“40” value=“<?php echo get_option(‘ashu_copy_right’); ?>”/>
- 请输入文字
- </label>
- </p>
- <p class=“submit”>
- <input type=“submit” name=“option_save” value=“<?php _e(‘ 保存设置’); ?>” />
- </p>
- </form>
- <?php } ?>