Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Cara Bekerja Dengan Komen WordPress Metadata

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called How to Work with WordPress Metadata.
How to Work With WordPress User Metadata

Malay (Melayu) translation by Seurion (you can also view the original English article)

Sepanjang siri ini, kami telah melihat sejumlah API metadata yang ditawarkan oleh WordPress. Ini termasuk Post Meta API dan API Meta Pengguna. Hari ini, kita akan membentangkan siri ini dengan melihat WordPress Meta API Ulasan.

Perhatikan bahawa ini adalah yang menawarkan metadata API WordPress WordPress akhir. Sehingga WordPress 4.4, kini terdapat API Metadata Istilah. Untuk memahami sepenuhnya, penting untuk memahami taksonomi, terma, dan hubungan mereka dalam konteks WordPress. Dalam siri yang akan datang, saya akan menutupinya dengan tepat.

Tetapi hari ini, kami akan memberi tumpuan kepada pengurusan metadata yang dikaitkan dengan komen. Sekiranya anda tidak membaca apa-apa lagi dalam siri ini hingga ke tahap ini, saya cadangkan mengkaji semula apa yang telah kita pelajari.

Jika anda semua terperangkap, maka mari bermula.

Meta API Komentar WordPress

Sepanjang siri ini, kami telah menggunakan definisi metadata WordPress sebagai asas kami untuk memahami bagaimana maklumat ini diwakili dalam konteks persekitaran kami.

Khususnya, kami telah berkata:

Data meta dikendalikan dengan pasangan kunci/nilai. Kuncinya ialah nama unsur meta-data. Nilai adalah maklumat yang akan muncul dalam senarai meta-data pada setiap catatan individu yang berkaitan dengan maklumat tersebut.

Dalam mengekalkan selaras dengan kandungan yang lain yang kita lihat sepanjang siri ini, definisi ini berlaku dengan metadata komen seperti yang dilakukan dengan metadata pos dan metadata pengguna.

Yang terbalik kepada ini adalah bahawa sebaik sahaja anda mendapat pemegang pada pelbagai API metadata yang telah kami liputan, sepatutnya sangat sedikit kejutan dengan bagaimana fungsi metadata lain berfungsi. Mungkin ada beberapa perkara yang berbeza bergantung pada API yang anda gunakan, tetapi intipati fungsi akan sama.

Dan, seperti yang anda lihat, ini terus berlaku dengan API metadata komen.

Bekerja Dengan Ulasan Metadata API

Seperti dengan API lain yang telah kami periksa sepanjang siri ini, terdapat empat fungsi utama yang akan kami pelajari:

  • add_comment_meta
  • update_comment_meta
  • get_comment_meta
  • delete_comment_meta

Sekarang, anda mungkin tahu apa yang diharapkan apabila ia berlaku, katakan, perbezaan antara menambah metadata komen dan mengemas kini metadata komen. Atau, katakan, bekerja dengan memadam metadata komen.

Itu tidak mengubah hakikat bahawa ia patut diterokai setiap fungsi API secara terperinci untuk memastikan kami telah membahas semua yang perlu diketahui ketika bekerja dengan mereka.

Untuk bahagian lain artikel ini, saya mengandaikan yang berikut:

  • Anda menjalankan persekitaran pembangunan tempatan dengan pelayan web, pelayan pangkalan data, dan PHP.
  • Anda mempunyai salinan WordPress yang dipasang.
  • Anda mempunyai salinan tutsplus-metadata.php yang ditetapkan dalam direktori tema anda, dan ia termasuk dalam fail fungsi.php tema anda.
  • Anda mempunyai IDE dan pilihan pangkalan data pilihan anda sedia ada.

Seperti yang telah saya gunakan sepanjang artikel sebelumnya, saya menggunakan aplikasi berikut:

Akhir sekali, semua metadata yang akan kami jalankan disimpan dalam jadual pangkalan data wp_commentmeta, jadi semua tangkapan skrin yang anda lihat pangkalan data akan menjadi jadual tertentu.

An empty comment metadata table

Tidak seperti beberapa jadual metadata lain yang telah kita lihat, jadual wp_commentmeta dimulakan kosong (dengan menganggap anda sedang bekerja dengan versi WordPress yang agak segar).

Ini adalah baik kerana ia akan memberikan kita bersih, macam-macam, untuk digunakan semasa memeriksa pelbagai fungsi API. Perhatikan bahawa untuk semua contoh di bawah, kami akan memastikan semua ini berlaku di Hello World! jawatan. Pos ini mempunyai ID 1. Sekiranya anda ingin menggunakan halaman lain, hanya ganti 1 dengan ID jawatan yang dipersoalkan.

Dengan semua itu, mari kita mula melihat apa yang ada.

Menambah Meta Komen

Untuk mula menambahkan metadata ke komen kami, penting untuk melihat jadual wp_comments untuk melihat komen apa yang ada. Jika anda bekerja dengan pemasangan WordPress baru, maka anda mungkin akan melihat rekod tunggal:

A single default WordPress comment

Ini adalah komen lalai yang dihantar dengan WordPress, dan ia akan berbuat baik untuk contoh yang akan kami gunakan.

Jika, sebaliknya, anda bekerja dengan pangkalan data penuh komen, tidak ada masalah! Apa yang anda perlu tahu ialah apa komen yang anda bekerjasama (melalui IDnya), dan pastikan anda selaras dengan kod yang kami gunakan di bawah.

Seperti dengan API lain yang telah kami semak dalam siri ini, menambah metadata pada ulasan datang dalam dua bentuk: unik dan tidak unik. Kami akan mengkaji semula kedua-duanya.

Menambah Metadata yang Unik

Fungsi add_comment_meta menerima tiga parameter dan parameter keempat pilihan. Jika anda lalui true sebagai parameter keempat, maka metadata hanya akan ditambah jika kekunci meta yang ditentukan tidak wujud.

Masuk akal? Mari kita lihat. Mula-mula, kami akan menyediakan fungsi yang akan menambah beberapa metadata yang berkaitan dengan komen pertama (tetapi hanya akan berbuat demikian pada jawatan yang mempunyai ID 1):

Perhatikan bahawa saya telah meluluskan parameter sebenar. Jadi setiap kali saya menyegarkan halaman, WordPress akan melihat bahawa saya mahu nilai ini menjadi unik supaya tidak menambah lagi maklumat pada jadual pangkalan data yang berkaitan dengan kunci meta tersebut.

Menambah Metadata Bukan Unik

Jika, sebaliknya, saya mahu mengaitkan pelbagai nilai dengan kekunci meta yang sama, saya akan mengalih keluar parameter yang benar. Sebagai contoh, gunakan kod berikut:

Kemudian muat semula halaman, katakan, tiga kali. Jika semua berjalan seperti yang diharapkan, anda boleh melihat tiga rekod baru, yang masing-masing mengandungi nombor rawak seperti yang dijanakan oleh panggilan untuk rand() dalam hujah nilai meta.

Multiple values with the same meta key

Ia cukup mudah untuk terus lurus, bukan? Sekiranya anda mahukan satu nilai tunggal yang dikaitkan dengan satu kunci, maka lalui true sebagai argumen keempat pilihan; sebaliknya, jangan nyatakan apa-apa.

Mengemas kini Komen Meta

Jika anda ingin mengemas kini metadata ulasan yang ada, maka penting untuk mengetahui ID ulasan, meta kunci, dan nilai meta. Ini bermakna WordPress akan melihat kekunci meta yang ditetapkan dan mengaitkannya dengan nilai meta yang ditentukan.

Jika nilai meta wujud, maka ia akan ditimpa. Jika nilai meta tidak wujud, maka ia akan dibuat. Perhatikan dalam ayat terakhir bahawa terdapat sedikit fungsi yang boleh anda gunakan apabila menambah metadata: Jika anda ingin mempunyai sekeping maklumat unik yang ditulis pada jadual metadata, maka anda boleh menggunakan update_comment_meta dan akan menulisnya sebagai nilai unik.

Ini mungkin menghasilkan sedikit kod yang mengelirukan (kerana ia berbunyi seolah-olah ia mengemas kini sesuatu yang tidak wujud), tetapi ia juga membolehkan anda menguatkuasakan bahawa hanya satu rekod yang akan wujud untuk kunci meta yang diberikan.

Apa yang berlaku apabila terdapat kunci meta yang dikaitkan dengan beberapa nilai meta? Dalam hal ini, anda perlu mengetahui nilai yang anda ingin ganti. Dalam sesetengah keadaan, anda mungkin tahu dengan tepat apakah ini. Dalam keadaan lain, anda mungkin perlu mengambil maklumat untuk mencarinya (yang akan kita tutup di bahagian seterusnya).

Dengan mengandaikan bahawa kami ingin mengemas kini salah satu rekod yang kami buat, seperti salah satu nombor rawak yang kami lihat dalam contoh di atas, kami boleh melihatnya menggunakan pangkalan data front-end:

An updated random value related to multiple keys

Dan nyatakannya sebagai nilai sebelumnya dalam kod berikut:

Selepas itu, kami boleh menyegarkan halaman, lihat dalam pangkalan data kami, dan lihat perubahan itu. Perhatikan bahawa kerja yang kami lakukan hanya relevan dengan persekitaran pembangunan dan bukanlah cara anda mengendalikannya dalam pengeluaran.

Sebaliknya, anda mungkin perlu menjalankan pertanyaan atau mendapatkan satu set nilai sebelum mengemas kininya. Ini membawa kita ke topik seterusnya.

Mendapatkan Meta Komen

Apabila anda mengambil metadata komen, anda perlu memutuskan sama ada anda mahu mengambil satu nilai atau semua nilai yang dikaitkan dengan kunci meta yang ditentukan.

Mungkin satu lagi cara untuk melihat ini adalah seperti berikut: Jika beberapa kepingan metadata telah ditambah dengan kekunci meta yang sama (yang kita diliputi dalam bahagian Metadata Menambah Unik di atas), maka anda mungkin ingin mengambil keseluruhan koleksi rekod.

Jika, sebaliknya, anda hanya ingin mengambil satu rekod kerana anda tahu ia unik atau kerana ia telah dibuat dengan fungsi update_comment_meta, maka anda mahu WordPress mengembalikannya kepada anda dalam satu nilai.

Fungsi get_comment_meta memerlukan tiga hujah dan pilihan keempat bergantung kepada apa yang anda mahu dapatkan.

Mendapatkan Array

Katakan bahawa anda sedang mencari untuk mengambil koleksi semua nilai yang dikaitkan dengan satu kunci meta. Untuk melakukan ini, anda akan membuat panggilan untuk get_comment_meta dan anda akan menentukan ID komen dan kunci meta.

Dalam kod di atas, kami mencetaknya ke penyemak imbas web, tetapi anda akan dapat bekerjasama dengan data ini dengan cara yang anda mahu sebaik sahaja anda telah mengambilnya. Perkara yang paling penting untuk diperhatikan ialah, bahawa nilai dikembalikan sebagai array.

Mendapatkan Nilai Satu

Jika anda ingin mendapatkan satu nilai, maka anda hanya perlu menentukan ID komen dan kunci meta dalam fungsi get_comment_meta. Sekiranya anda menghadapi kunci meta dengan pelbagai nilai, maka nilai pertama yang dibuat adalah apa yang akan dikembalikan.

Sebagai contoh, katakan terdapat tiga rekod yang berkaitan dengan satu kunci meta, dan anda hanya ingin mengambil satu nilai. Kod anda akan kelihatan seperti ini:

Dan nilai yang dihasilkan akan kelihatan seperti ini:

Sebagai alternatif, jika anda tahu data itu unik, kod tersebut akan tetap sama, seperti yang akan dipulangkan.

Satu-satunya perbezaan adalah bahawa contoh pertama diambil dari satu set pelbagai rekod, dan contoh kedua diambil dari satu rekod. Juga ambil perhatian bahawa jika anda berurusan dengan nilai yang unik, maka ia akan dikembalikan kepada anda sebagai tatasusunan, tetapi satu indeks indeks tunggal.

Ini penting untuk diperhatikan kerana jika anda bercadang untuk melakukan apa-apa jenis perbandingan, terutamanya kepada nilai jenis yang berbeza, seperti integer, maka anda perlu merebut nilai dari array, dan anda mungkin ingin melakukan jenis penukaran sebelum membuat perbandingan.

Memadamkan Meta Komen

Memadamkan metadata adalah operasi mudah: Ia memerlukan ID ulasan, kunci meta, dan nilai meta pilihan.

Jika anda tidak menentukan nilai meta, semua rekod yang berkaitan dengan kunci meta akan dikeluarkan. Jika, bagaimanapun, anda menentukan nilai meta, maka hanya satu rekod yang akan dikeluarkan.

Mengeluarkan Nilai Unik

Untuk tujuan contoh ini, anggap kita tahu sekeping metadata wujud untuk kunci meta yang diberikan. Ini bermakna kunci meta mestilah unik untuk setiap pengguna, jadi mungkin ia menggunakan sesuatu seperti ID yang dihasilkan secara unik, setem masa, atau sesuatu yang serupa.

Untuk mengeluarkan nilai yang unik, kami hanya lulus ID komen dan kunci meta:

Sebelum menjalankan kod ini, pangkalan data harus kelihatan seperti ini:

Metadata in the comment metadata table

Selepas anda menyegarkan halaman, lihat pangkalan data dan anda harus melihat bahawa rekod telah dialih keluar dan pangkalan data harus kelihatan seperti ini:

A unique value having been removed

Kami akan bercakap sedikit lebih lanjut mengenai langkah berjaga-jaga yang perlu diambil semasa memotong data dalam bahagian seterusnya.

Mengalih keluar Nilai Bukan Unik

Dalam situasi lain, katakan terdapat banyak nilai yang dikaitkan dengan satu kunci meta. Kami telah melihat banyak kali sepanjang artikel ini. Jika anda mahu memadamkan semua rekod yang berkaitan dengan kunci meta, maka anda tidak perlu menentukan nilai meta.

Iaitu, jika anda hanya lulus ID dan kunci meta komen untuk fungsi delete_comment_meta, ia akan mengalih keluar semua potongan metadata komen. Tulis dan laksanakan kod berikut:

Muat semula halaman anda dan kemudian semak pangkalan data. Jika tidak ada masalah, pangkalan data anda harus jelas dari semua rekod yang sebelum ini mempunyai meta kunci:

No random values in the comment metadata table

Tetapi ingat bahawa mengeluarkan data dari pangkalan data boleh berbahaya, terutamanya jika anda secara tidak sengaja memadamkan sesuatu yang anda tidak pernah bermaksud untuk memadam. Untuk itu, penting untuk menyimpan sandaran pangkalan data anda dalam persekitaran pengeluaran supaya anda boleh memulihkannya jika ada masalah.

Selanjutnya, ini menunjukkan mengapa ia sangat penting untuk mempunyai persekitaran pembangunan tempatan dan persekitaran pementasan untuk menguji sebelum menggunakan kod ke persekitaran pengeluaran.

Kod Sumber Lengkap

Seperti yang disediakan sepanjang siri keseluruhan ini, inilah satu salinan semua kod sumber yang telah kita bahas dalam artikel ini. Ia didokumentasikan sepenuhnya dan mengandungi komen yang tidak ditunjukkan dalam beberapa bahagian di atas.

Ambil perhatian bahawa jika anda memasukkan ini dengan kod dari seluruh artikel dalam siri ini, anda perlu berhati-hati. Oleh kerana semuanya didaftarkan dengan cangkuk yang sama, anda mungkin berakhir dengan hasil yang pelik.

Untuk memerangi ini, saya mencadangkan salah satu daripada dua senario berikut:

  1. Buat tiga fail berasingan: satu untuk setiap jenis API metadata yang telah kami periksa.
  2. Komen panggilan add_filter, kecuali yang anda sedang bekerja.

Salah satu daripada ini akan menjadikannya lebih mudah untuk berfungsi dengan semua kod yang telah kami tutup setakat ini.

Kesimpulan

Sama ada anda bekerja dengan API metadata atau salah satu daripada API lain, setiap pemaju WordPress harus selalu mempunyai akses cepat ke WordPress Codex untuk meneliti dengan cepat apa API tersedia dan bagaimana ia harus digunakan.

Seperti yang telah kami lakukan melalui siri ini, anda harus melihat bagaimana API yang direka di sekitar metadata adalah konsisten. Ini menjadikan API yang mudah digunakan dan kuat untuk memanjangkan beberapa fungsi teras WordPress.

Di samping itu, saya telah menyebut bahawa terdapat satu lagi metadata API yang diperkenalkan di WordPress 4.4. Saya merancang untuk merangkumi bahawa dalam siri yang akan datang, tetapi ia memerlukan pemeriksaan beberapa fungsi lain yang berdasarkannya.

Buat masa ini, kami telah menyediakan banyak bahan untuk membantu meningkatkan tahap kemahiran WordPress anda. Sehingga artikel seterusnya, ingat semua kursus dan tutorial saya boleh didapati di halaman profil saya, dan anda boleh membaca lebih banyak artikel mengenai perkembangan WordPress dan WordPress di blog saya.

WordPress mempunyai ekonomi aktif. Terdapat tema, plugin, perpustakaan, dan banyak produk lain yang membantu anda membina tapak dan projek anda. Sifat sumber terbuka dari platform juga menjadikannya pilihan yang baik dari mana anda boleh meningkatkan kemahiran pengaturcaraan anda. Walau apa pun, anda boleh melihat apa yang kami ada di Envato Marketplace.

Jangan ragu untuk mengikuti saya di Twitter juga di @tommcfarlin, di mana saya bercakap tentang pelbagai amalan pembangunan perisian, yang banyak berkaitan dengan perkembangan web dan banyak yang khusus ditujukan ke WordPress.

Seperti semua artikel saya, sila jangan teragak-agak untuk meninggalkan apa-apa soalan atau komen dalam suapan di bawah ini, dan saya berhasrat untuk memberi respons kepada masing-masing.

Sumber

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.