Laman » WordPress » Memahami Wordpress Custom Meta Box

    Memahami Wordpress Custom Meta Box

    Dalam jawatan terdahulu, kami telah berbincang tentang bidang adat WordPress, yang membolehkan anda menambah dan mengeluarkan entri baru dalam catatan menggunakan kotak Custom Field yang disediakan oleh WordPress dalam skrin pengeditan pos. Jika bagaimanapun anda tidak selesa menggunakan kotak medan tersuai (kita semua mempunyai keutamaan individu kita), berikut adalah alternatif: anda boleh membuat kotak meta.

    Kotak meta ialah kotak tersuai yang kita buat sendiri, yang mungkin mengandungi input atau UI interaktif lain untuk menambah entri baru jawatan atau halaman. Anda boleh menggunakan kotak meta dan bukan kotak Custom Custom untuk melakukan perkara yang sama. Mari lihat cara membuatnya.

    Lebih lanjut mengenai Hongkiat.com:

    • Sesuaikan direktori muat naik media Di WordPress
    • Sesuaikan gaya editor WordPress
    • Peribadikan “Howdy” Dalam bar admin WordPress
    • Mendaftarkan taksonomi adat untuk pengguna WordPress
    • Ikon paparan Dalam menu WordPress

    Membuat Kotak Meta

    WordPress menyediakan fungsi API, yang dipanggil add_meta_box, yang membolehkan kami membuat kotak meta secara langsung. Ini dalam bentuk asasnya.

     fungsi add_post_reference () add_meta_box ('rujukan selepas', 'Rujukan', 'referenceCallBack', 'pos');  add_action ('add_meta_boxes', 'add_post_reference'); rujukan fungsiCallBack () echo 'Hello World' 

    The add_meta_box mengambil empat parameter: ID, tajuk kotak meta, fungsi panggil balik yang akan memanggil 'Hello World', dan jenis pos yang kami mahu paparkan. Dalam hal ini, kita menetapkan kotak meta baru dalam halaman pengeditan pos (ini juga berfungsi dengan halaman).

    Dalam bahagian pengeditan pos, anda akan menemui kotak baru, seperti berikut.

    Kotak meta baru, seperti yang anda lihat di atas, akan muncul di bawah editor WYSIWYG. Jika anda mahu menambahnya di bar sisi anda boleh menambah 'sampingan' selepas parameter pos, dan bersama-sama dengan 'tinggi' jika anda mahu meletakkannya di bahagian paling atas bar sisi.

     fungsi add_post_reference () add_meta_box ('rujukan selepas', 'Rujukan', 'referenceCallBack', 'pos', 'sampingan', 'tinggi');  add_action ('add_meta_boxes', 'add_post_reference'); 

    Anda sekarang akan mendapatinya di atas Menerbitkan kotak…

    Kini untuk menggantikan teks 'Hello World' di sana. Mari tambahkan elemen seperti medan input untuk entri baru.

    Dalam contoh ini, kami akan menambah dua medan input yang terdiri daripada satu untuk menambah Nama Rujukan dan satu lagi untuk Pautan Rujukan:

     rujukan fungsiCallBack ($ post) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', benar); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', benar); echo ''; echo ''; echo '

    '. 'Tambahkan nama rujukan'. '

    '; echo ''; echo ''; echo '

    '. 'Tambahkan pautan rujukan'. '

    ';

    Muat semula halaman pengeditan pos, dan anda akan melihat kedua-dua input ini ditambah.

    The $ name_value dan $ link_value pembolehubah akan mengambil penyertaan dari pangkalan data dan memasukkannya ke dalam medan input. Untuk mendapatkan penyertaan dalam pangkalan data, kita perlu membuat fungsi untuk itu.

    Kita perlu menambah beberapa baris kod yang akan mengisi masukan yang dimasukkan melalui input ini ke pangkalan data dengan selamat. “Selamat” di sini bermakna kemasukan yang sah dan sah (bukannya yang datang dari penggodam atau kakitangan lain yang tidak dibenarkan). Untuk menyimpan kemasukan, kita perlu membuat fungsi baru. Katakan fungsi: save_post_reference, seperti itu.

     fungsi save_post_reference ($ post_id)  ​​add_action ('save_post', 'save_post_reference'); 

    Seperti yang telah kami sebutkan, kami perlu mengesahkan beberapa perkara untuk tujuan keselamatan:

    (1) Kami perlu menyemak sama ada pengguna mempunyai keupayaan untuk mengedit jawatan.

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

    (2) Kita juga perlu semak jika Nonce ditetapkan.

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

    (3) Kemudian, kita perlu menghalang data daripada disimpan secara automatik. Penjimatan hanya boleh dilakukan sebaik sahaja “Simpan” atau “Kemas kini” butang telah diklik.

     jika (ditakrifkan ('DOING_AUTOSAVE') && DOING_AUTOSAVE) kembali;  

    (4) Kami juga perlu memastikan bahawa dua input kami, post_reference_name dan post_reference_link, ditetapkan dan siap sebelum kami menyerahkan penyertaan.

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

    (5) Dan entri itu hendaklah bebas dari sebarang aksara yang tidak dijangka yang boleh menjejaskan keselamatan laman web. Untuk menyemak ini, anda boleh menggunakan fungsi terbina dalam WordPress sanitize_text_field.

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

    Baiklah, sekarang kami sudah bersedia untuk menyimpan penyertaan dalam pangkalan data:

     update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link); 

    Sekarang anda boleh mencubanya: masukkan beberapa kandungan ke dalam medan input, dan klik “Kemas kini” butang untuk menyelamatkannya.

    Kesimpulannya

    Kami baru saja membuat kotak meta yang terdiri daripada dua input. Anda boleh melanjutkan lagi kotak dengan jenis input lain seperti butang radio atau kotak pilih. Contoh ini mungkin sangat mendasar tetapi apabila anda menguasainya, anda akan dapat menggunakan kotak meta ini untuk kegunaan yang lebih rumit. Marilah kita tahu jika anda akan menggunakannya dan apa yang anda akan gunakan untuknya.