Проверка Пользовательских Значений Мета-Полей и Обязательных Полей


То, чего я никогда не видел, - это лучший способ проверить правильность заполнения определенных полей формы для пользовательских мета-полей типа записи.

Я ищу мнения экспертов о том, как лучше всего проверять пользовательские поля для любых метабоксов, которые можно создать. Мой интерес заключается в том, чтобы:

  • убедитесь, что проверка поля выполняется до публикации/обновления публикации
  • использование класса/кода, который не конфликтует с другими wordpress javascript
  • позволяет определять определенные поля по мере необходимости, в то время как другие могут быть необязательными
  • проверка полей на основе настраиваемых правил, включая регулярное выражение для таких вещей, как формат электронной почты
  • управление визуальным отображением любых ошибок/уведомлений

Заранее спасибо!

Author: NetConstructor.com, 2010-09-12

5 answers

Самый простой способ - добавить проверку Javascript с помощью плагина jQuery Validate. Вот самое основное пошаговое руководство:

Рядом с вашим вызовом add_meta_box поставьте в очередь плагин проверки jQuery, а также файл 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, где вы определяете настраиваемые поля, вы добавляете "обязательный" класс для каждого поля вы хотите подтвердить, например:

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

Все поля с "обязательными" в их классе будут проверены при сохранении/публикации/обновлении публикации. Все другие параметры проверки (правила, стиль ошибок и т. Д.) Могут быть установлены в документе.функция готовности в my_script.js ; проверьте документы jQuery для проверки всех параметров.

 21
Author: danblaker, 2012-02-14 18:49:37

Полный базовый код для добавления проверки jQuery:

  1. Поставьте в очередь сценарий проверки. Я предполагаю, что jQuery уже запрошен.

    add_action('admin_enqueue_scripts',function($id){
        $validation',$validation_js_url = #your validation.js source;
        wp_register_script( 'validation',$validation_js_url,array(),'',true );
        wp_enqueue_script( 'validation' );
    });
    
  2. В файле js или теге скрипта:

    jQuery(document).ready(function($){
        var form = $("form[name='post']");
        $(form).find("input[type='submit']").click(function(e){
            e.preventDefault();
            $(form).validate();
    
            if($(form).valid())
            {
                $("#ajax-loading").show();
                $(form).submit();
            }else{
                $("#publish").removeClass().addClass("button-primary");
                $("#ajax-loading").hide();
            }
        });
    });
    
  3. Сделано :)

 2
Author: Ijas Ameenudeen, 2012-05-15 17:50:40

Я использовал этот код, очень полезный, просто изменил:

$(form).find("input[type='submit']").click(function(e){

Кому:

$(form).find("#publish").click(function(e){

Потому что, если у вас есть другая форма внутри основной формы, это запускает скрипт.

И:

$(form).submit();

Кому:

$(this).submit();

Потому что первая строка сохраняет сообщение только как черновик, и вы больше не можете его публиковать.

Здесь все написано: http://allgraphics.it/blog/2012/10/jquery-validation-sui-campi-di-input-postcustom-post-di-wordpress/

 2
Author: Ricky, 2012-11-20 11:31:09

Я нашел этот подход для решения проблемы проверки полей метабокса с помощью PHP-кода

Https://tommcfarlin.com/post-meta-data-error-messages/

Надеюсь, это поможет вам (работает для меня в аналогичном сценарии)

 2
Author: Julio Garcés Teuber, 2016-06-09 17:28:48

Если вы хотите иметь возможность проверять на стороне сервера, самый простой вариант - использовать Расширенные пользовательские поля для определения пользовательских макетов полей, а затем Проверенное поле надстройка для настройки проверки для каждого поля в администраторе WordPress.

 0
Author: doublesharp, 2015-06-23 22:47:38