上一篇教程中,我們新增了簡單的設定選項,資料的儲存我們是直接提交到 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 } ?>