Anasayfa » WordPress » WordPress Özel Meta Kutusunu Anlama

    WordPress Özel Meta Kutusunu Anlama

    Önceki yayında, WordPress'in yazı düzenleme ekranında sağladığı Özel Alan kutusunu kullanarak bir yayına yeni bir giriş eklemenizi ve çıkarmanızı sağlayan WordPress özel alanı hakkında konuştuk. Bununla birlikte, özel alan kutusunu kullanmaktan memnun değilseniz (hepimizin kişisel tercihleri ​​vardır), işte bir alternatif: bir meta kutusu oluşturabilirsiniz.

    Bir meta kutusu özelleştirilmiş kutu kendi başımıza yarattığımız, ki yeni giriş eklemek için giriş veya diğer etkileşimli kullanıcı arayüzlerini içerir Mesajların veya sayfaların. Aynı şeyi yapmak için Özel Alan kutusu yerine meta kutusunu kullanabilirsiniz. Nasıl yaratılacağını görelim.

    Hongkiat.com hakkında daha fazlası:

    • Medya yükleme dizinini özelleştirme WordPress'te
    • WordPress editörü stillerini özelleştirme
    • Özelleştirmek “Merhaba” WordPress yönetici çubuğunda
    • WordPress kullanıcıları için özel taksonomiyi kaydetme
    • Simgeleri WordPress menüsünde görüntüleme

    Meta Kutu Oluşturmak

    WordPress denilen bir API işlevi sağlar add_meta_box, bu da hemen bir meta kutusu oluşturmamıza izin veriyor. Bu en temel haliyle.

     add_post_reference () add_meta_box ('başvuru sonrası', 'Referans', 'referenceCallBack', 'yayın');  add_action ('add_meta_boxes', 'add_post_reference'); referenceCallBack () echo 'Hello World' işlevi 

    add_meta_box dört parametre alır: ID, meta kutusu başlığı, 'Merhaba Dünya'yı' çağıracak bir geri çağırma işlevi ve görüntülemek istediğimiz yazı tipi. Bu durumda, yazı düzenleme sayfasına yeni bir meta kutusu atarız (bu sayfalarla da çalışır).

    Yazı düzenleme bölümünde, aşağıdaki gibi yeni bir kutu bulacaksınız.

    Yukarıda gördüğünüz gibi yeni meta kutusu WYSIWYG editörünün altında görünecektir. Kenar çubuğuna eklemek istiyorsanız, post parametresinden sonra 'side' ve kenar çubuğunun en üstüne koymak istiyorsanız 'high' ile birlikte ekleyebilirsiniz..

     add_post_reference () add_meta_box ('başvuru sonrası', 'Referans', 'referenceCallBack', 'yayın', 'taraf', 'yüksek');  add_action ('add_meta_boxes', 'add_post_reference'); 

    Şimdi üstünde bulacaksınız Yayınla Kutu…

    Şimdi oradaki 'Merhaba Dünya' metnini değiştirmek için. Yeni bir giriş için giriş alanı gibi öğeler ekleyelim..

    Bu örnekte, Referans Adını eklemek için bir tane ve Referans Link için diğerini içeren iki giriş alanı ekleyeceğiz:

     referenceCallBack ($ post) işlevi wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', doğru); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', doğru); Eko ''; Eko ''; Eko '

    '. 'Referansın adını ekle'. '

    '; Eko ''; Eko ''; Eko '

    '. 'Referansın bağlantısını ekle'.

    ';

    Kayıt düzenleme sayfasını yenileyin ve bu iki girişi eklendiğini görmelisiniz..

    $ NAME_VALUE ve $ link_value değişken veritabanından girişleri alır ve giriş alanlarına yerleştirir. Girdileri veritabanına almak için, bunun için bir işlev yaratmamız gerekecek..

    Bu girdiyle eklenen girdileri veritabanına güvenli bir şekilde yerleştirecek birkaç kod satırı eklememiz gerekir. “Güvenli bir şekilde” burada meşru ve yetkili bir giriş anlamına gelir (bilgisayar korsanlarından veya diğer yetkisiz personelden değil). Girişi kaydetmek için yeni bir fonksiyon oluşturmalıyız. Fonksiyonu isimlendirelim: save_post_reference, öyle.

     save_post_reference ($ post_id)  ​​add_action ('save_post', 'save_post_reference') işlevi; 

    Bahsettiğimiz gibi, güvenlik amacıyla birkaç şeyi doğrulamamız gerekiyor:

    (1) Kullanıcının olup olmadığını kontrol etmemiz gerekecek Bir yayını düzenleme yeteneğine sahiptir.

     if (! current_user_can ('edit_post', $ post_id)) return;  

    (2) Ayrıca gerekir Nonce ayarlanmış olup olmadığını kontrol edin.

     if (! isset ($ _POST ['reference_nonce']))) return;  if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box'))) return;  

    (3) Ardından, verilerin otomatik kaydedilmesini engellememiz gerekir. Tasarruf yalnızca bir kez yapılabilir. “Kayıt etmek” veya “Güncelleştirme” düğmesi tıklandı.

     eğer (tanımlı ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) İki girdimizin de girmesini sağlamak zorundayız., post_reference_name ve post_reference_link, Girişleri göndermeden önce hazır ve hazır.

     if (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link']))) return;  

    (5) Giriş, web sitesinin güvenliğini tehlikeye atabilecek beklenmeyen karakterlerden arındırılmış olmalıdır. Bunu kontrol etmek için WordPress yerleşik işlevini kullanabilirsiniz. sanitize_text_field.

     $ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']); 

    Tamam, şimdi girişleri veritabanına kaydetmeye hazırız:

     update_post_meta ($ post_id, '_post_reference_name', $ başvuru_adı); update_post_meta ($ post_id, '_post_reference_link', $ reference_link); 

    Şimdi deneyebilirsiniz: Giriş alanlarına bazı içerikler girin ve “Güncelleştirme” onları kaydetmek için düğme.

    Sonuç

    İki girdiden oluşan bir meta kutusu oluşturduk. Kutuyu, radyo düğmesi veya seçim kutusu gibi diğer giriş türleriyle daha da genişletebilirsiniz. Bu örnek çok basit olabilir, ancak bir kez onu çözdüğünüzde, bu meta kutuyu çok daha karmaşık kullanımlar için kullanabilirsiniz. Bunu kullanıp kullanmayacağınızı ve ne için kullanacağınızı bize bildirin..