上一篇教程中,我们添加了简单的设置选项,数据的保存我们是直接提交到 wp-admin/options.php 中的,对于数据的保存我们还可以使用一个专用的函数 update_option(),准确的说这个函数是更新设置选项数据的。这一篇教程还是比较重要的,因为我们后面将的教程中,都是使用 update_option 这个函数来保存、更新设置数据的。

函数用法如下:

  1. <?php   
  2. update_option( $option$newvalue );   
  3. //$option 为选项名称   
  4. //newvalue 为选项的值   
  5. ?>  

实例:我们使用上一篇教程的代码,(前面我们已经在默认的 Twenty Ten 主题中新建一个 myfuntions.php , 然后在 functions.php 文件中 include 新文件),打开 myfunctions.php 文件,去掉三个隐藏表单,去掉表单的的提交地址,也就是 form 标签中的 action 属性,之后代码如下:

  1. <?php      
  2. function test_function(){   
  3.     add_theme_page( ‘ 阿树工作室’, ‘ 阿树工作室’, ‘administrator’, ‘ashu_slug’,’display_function’);   
  4. }   
  5. add_action(‘admin_menu’, ‘test_function’);   
  6.   
  7. function display_function(){ ?>   
  8.     <form method=“post” name=“ashu_form” id=“ashu_form”>   
  9.     <h2> 阿树工作室主题设置</h2>   
  10.     <p>   
  11.     <label>   
  12.     <input name=“ashu_copy_right” size=“40” value=“<?php echo get_option(‘ashu_copy_right’); ?>”/>   
  13.     请输入文字   
  14.     </label>   
  15.     </p>   
  16.     <p class=“submit”>   
  17.         <input type=“submit” name=“option_save” value=“<?php _e(‘ 保存设置’); ?>” />   
  18.     </p>    
  19.     </form>   
  20.        
  21. <?php } ?>  

下面我们在文件顶部再添加处理数据的代码:

  1. <?php   
  2. $option = get_option(‘ashu_copy_right’);//获取选项   
  3. if$option ==  ){   
  4.     //设置默认数据   
  5.     $option = ‘ 阿树工作室’;   
  6.     update_option(‘ashu_copy_right’, $option);//更新选项   
  7. }   
  8. if(isset($_POST[‘option_save’])){   
  9.     //处理数据   
  10.     $option = stripslashes($_POST[‘ashu_copy_right’]);   
  11.     update_option(‘ashu_copy_right’, $option);//更新选项   
  12. }   
  13.   
  14. ?>  

注意:我们这里的例子只有一个设置选项,如果表单中提交了多个数据,可将数据放进一个数组中,这样获取数据的时候只需使用一次 get_option 函数即可,更新数据也只需要使用一次 update_option 函数,还有,这一篇文章的方法并不是可取的,如果你只有少量的数据,可以使用上一篇教程中的方法。

下面是 myfunctions.php 中的所有代码:

  1. <?php   
  2. $option = get_option(‘ashu_copy_right’);//获取选项   
  3. if$option ==  ){   
  4.     //设置默认数据   
  5.     $option = ‘ 默认数据’;   
  6.     update_option(‘ashu_copy_right’, $option);//更新选项   
  7. }   
  8. if(isset($_POST[‘option_save’])){   
  9.     //处理数据   
  10.     $option = stripslashes($_POST[‘ashu_copy_right’]);   
  11.     update_option(‘ashu_copy_right’, $option);//更新选项   
  12. }   
  13.   
  14. ?>   
  15.   
  16. <?php      
  17. function test_function(){   
  18.     add_theme_page( ‘ 阿树工作室’, ‘ 阿树工作室’, ‘administrator’, ‘ashu_slug’,’display_function’);   
  19. }   
  20. add_action(‘admin_menu’, ‘test_function’);   
  21.   
  22. function display_function(){ ?>   
  23.     <form method=“post” name=“ashu_form” id=“ashu_form”>   
  24.     <h2> 阿树工作室主题设置</h2>   
  25.     <p>   
  26.     <label>   
  27.     <input name=“ashu_copy_right” size=“40” value=“<?php echo get_option(‘ashu_copy_right’); ?>”/>   
  28.     请输入文字   
  29.     </label>   
  30.     </p>   
  31.     <p class=“submit”>   
  32.         <input type=“submit” name=“option_save” value=“<?php _e(‘ 保存设置’); ?>” />   
  33.     </p>    
  34.     </form>   
  35.        
  36. <?php } ?>