it-swarm.asia

Özel Meta Kutusu Değerlerini ve Zorunlu Alanları Doğrulama

Daha önce hiç görmediğim bir şey, özel yazı tipi meta kutuları için belirli form alanlarının doğru doldurulduğunu doğrulamanın en iyi yoludur.

Kişinin oluşturabileceği herhangi bir meta kutu için özel alanları nasıl doğrulayacağınız konusunda uzman görüşleri almak istiyorum. İlgilendiğim:

  • gönderi yayınlanmadan/güncellenmeden önce alan doğrulamasının yapıldığından emin olun
  • diğer wordpress javascript ile çakışmayan bir sınıf/kod kullanmak
  • diğerleri isteğe bağlı olabilirken belirli alanları istediğiniz gibi tanımlamanıza olanak tanır
  • e-posta formatı gibi şeyler için regex dahil olmak üzere özelleştirilebilir kurallara dayalı alanları doğrulama
  • hataların/bildirimlerin görsel görüntüsünü kontrol etme

Şimdiden teşekkürler!

15

En kolay yol, jQuery Validate plugin ile Javascript doğrulama eklemektir. İşte en basit adım:

Add_meta_box aramanızın yakınında, jQuery Validate eklentisini ve basit betiğiniz için bir JS dosyasını sıkın:

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');
}

Sonra my_script.js'de aşağıdakileri ekleyin:

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

Bu, posta formunda doğrulamayı etkinleştirir. Ardından, özel alanları tanımladığınız add_meta_box geri çağırma kutusuna, doğrulamak istediğiniz her alan için "zorunlu" bir sınıf eklersiniz, şöyle:

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

Sınıfında "zorunlu" olan tüm alanlar, kayıt kaydedildiğinde/yayınlandığında/güncellendiğinde doğrulanır. Diğer tüm doğrulama seçenekleri (kurallar, hata şekillendirme vb.), My_script.js'deki document.ready işlevinde ayarlanabilir; tüm seçenekler için jQuery Validate doc'ları kontrol edin.

20
danblaker

Bu kodu kullandım, çok yardımcı oldu, justa değişti:

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

Kime:

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

Çünkü ana formun içinde başka bir form varsa, bu betiği başlatır.

Ve:

$(form).submit();

Kime:

$(this).submit();

Çünkü ilk satır yalnızca yazıyı taslak olarak kaydeder ve artık yayınlayamazsınız.

Burada her şeyi yazdım: http://allgraphics.it/blog/2012/10/jquery-validation-sui-campi-di-input-postcustom-post-di-wordpress/

2
Ricky

PHP kodunu kullanarak metabox alanlarının doğrulanması sorununu çözmek için bu yaklaşımı buldum

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

Umarım bu size yardımcı olur (benzer bir senaryoda benim için çalışır)

JQuery Validation'ı eklemek için Temel Kodun tamamı:

  1. Doğrulama komut dosyasını sıkın. JQuery'nin zaten yetkilendirildiğini varsayıyorum.

    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 dosyasında veya script etiketinde:

    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. Tamam :)

2
Ijas Ameenudeen

Sunucu tarafını doğrulayabilmek istiyorsanız, en kolay seçenek Gelişmiş Özel Alanlar seçeneğini kullanarak özel alan düzenlerinizi tanımlamak ve ardından alandaki alan başına onayınızı ayarlamak için Doğrulanan Alan eklentisini kullanmaktır. WordPress Yöneticisi.

0
doublesharp