2013-08-01 55 views
2

我正在開發一個WordPress主題,我正在爲主題選項設計主題定製器。我想驗證輸入並在主題定製器中驗證失敗時顯示警報。如何在WordPress主題定製器中進行驗證

這是我曾嘗試

$wp_customize->add_setting('custom_social_settings[facebook]',array(
      'default' => '', 
      'type' => 'option', 
      'sanitize_js_callback' => 'check_url' 
     )); 

function check_url(){ 
    ?> 
    <script> 
     jQuery(document).ready(function(){ 
      // My validation script 
     }); 
    </script> 

    <?php 
} 

問題是,當我加載頁面sanitize_js_callback被執行兩次。什麼時候會調用sanitize_js_callback?只有當我點擊保存按鈕時才應該調用它。我應該爲保存按鈕的點擊事件編寫腳本。有沒有更好的方式在WordPress主題定製器中進行驗證?如何在WordPress主題定製器中進行典型的表單驗證?

在此先感謝

回答

3

您應該使用customize_register鉤,它不應該運行兩次,因爲這些回調(包括sanitize_callback)應執行(綁定),只有當你保存你的數據/提交表單。那麼,如果你正在使用鉤子,現在仍然面臨這個問題,那麼我認爲(也許不是最好的),你可以檢查表單是否提交(isset($_post['submit']))。

要清理url(保存到數據庫之前),可以使用esc_url_raw函數。 Check Data Validationthis nice tutorial

+0

感謝您的回答。我正在使用customize_register鉤子。驗證後有沒有任何方法顯示警告框?我正在爲您提到的教程尋找客戶端驗證 – Wishnu

+1

+1 – Wishnu