問題描述

我從來沒有看到的東西是驗證特定表單欄位正確填寫自定義帖子型別元框的最佳方式。

我正在尋求如何最好地驗證可能建立的任何 metaboxes 的自定義欄位的專家意見。我的興趣是:

  • 確保欄位驗證發生在釋出/更新發布之前

  • 利用不與其他 wordpress javascript 衝突的類/程式碼

  • 允許您根據需要定義特定欄位,而其他欄位可以是可選的

  • 根據可定製的規則驗證欄位,包括電子郵件格式等正規表示式

  • 控制任何錯誤/通知的視覺顯示

提前致謝!

最佳解決方案

最簡單的方法是透過 jQuery Validate plugin 新增 Javascript 驗證。這是最基本的演練:

在您的 add_meta_box 呼叫附近,排列 jQuery Validate 外掛以及簡單指令碼的 JS 檔案:

add_action('admin_enqueue_scripts', 'add_my_js');
function add_my_js(){
  wp_enqueue_script('my_validate', 'path/to/jquery.validate.min.js', array('jquery'));
  wp_enqueue_script('my_script_js', 'path/to/my_script.js');
}

那麼在 my_script.js 中包括以下內容:

jQuery().ready(function() {
    jQuery("#post").validate();
});

這將使後驗表單上的驗證。然後在您定義自定義欄位的 add_meta_box 回撥中,您可以為要驗證的每個欄位新增一個”required” 類,如下所示:

<input type="text" name="my_custom_text_field" class="required"/>

所有在”required” 的所有欄位都將在儲存/釋出/更新後驗證。所有其他驗證選項 (規則,錯誤樣式等) 都可以在 my_script.js 中的 document.ready 函式中設定; 檢查所有選項的 jQuery 驗證檔案。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。