上一篇教程中,我們添加了簡單的設置選項,數據的保存我們是直接提交到 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 } ?>