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

Cara Kerja Dengan Meta Term WordPress: Term Metadata API

by
Read Time:17 minsLanguages:
This post is part of a series called How to Work With WordPress Term Meta.
How to Work With WordPress Term Meta: Understanding Taxonomies

Indonesian (Bahasa Indonesia) translation by Wasmia Mia (you can also view the original English article)

Postingan pertama dalam seri ini meletakkan dasar guna memahami taksonomi, term, dan hubungannya dalam konteks WordPress.  Jika anda belum membacanya dan anda baru mengenal perkembangan WordPress, maka saya sangat rekomendasikan untuk membacanya karena posting ini akan berdasar pada semua yang tercakup dalam artikel itu.

Selanjutnya, karena kita melanjutkan membicarakan lebih banyak jenis metadata, maka penting untuk meninjau rangkaian sebelumnya yang kami bahas:

Alasan mengapa perlu meninjau artikel tersebut adalah karena artikel ini akan menyerupai beberapa teknik yang tercakup dalam artikel tersebut, dan juga akan berdasar pada beberapa strategi yang bekerja dengan API serupa.

Yang terpenting, tutorial ini bertujuan untuk memberikan panduan bagaimana bekerja dengan salah satu API metadata terbaru yang tersedia di WordPress.

Penafian untuk Pengembang

Seperti yang telah disebutkan sebelumnya, artikel khusus ini lebih ditujukan kepada mereka yang baru menyukai pengembangan WordPress atau yang ingin mengembangkan keahlian mereka.  Jadi jika anda adalah pengembang yang mutakhir, maka konten yang tercakup dalam artikel ini mungkin bukan menjadi sesuau yang menarik bagi anda.

Salah satu hal penting yang perlu diingat saat kita mengerjakan tutorial ini adalah kode tersebut tidak bisa digunakan di lingkungan produksi.  Artinya, Ia dimaksudkan untuk hanya mempelajari API dan untuk memahami cara kerjanya.

Kode yang kami tulis tidak dimaksudkan untuk digunakan dalam proyek yang akan digunakan untuk audien atau oleh sekelompok pengguna.  Alasan utamanya adalah karena ada topik seperti sanitasi, validasi, pelarian, dan sebagainya yang berada di luar jangkauan seri sebelumnya maupun seri ini.

Setelah kami selesaikan artikel ini, kami akan beralih ke topik yang lebih maju seperti yang disebutkan tadi tapi untuk saat ini kami hanya akan berfokus pada Term Metadata API.

Refresher tentang taksonomi dan Term

Sebelum berbicara mengenai API metadata, mari kita pastikan bahwa kita mengerti bahwa ia berkaitan dengan berbagai terminologi yang akan kita gunakan.  Secara khusus, kita perlu memastikan bahwa kita memahami taksonomi, term, dan hubungan antara keduanya.

Pertama, Codex mendefinisikan taksonomi sebagai berikut:

Di WordPress, "taksonomi" adalah mekanisme pengelompokan untuk beberapa posting (atau tautan atau jenis posting khusus).

Dalam instalasi WordPress default, anda dapat menganggapnya sebagai kategori dan tag.  Taksonomi bisa bersifat hierarkis, seperti kategori, atau tag yang tidak hierarkis.

Di sisi lainnya, term didefinisikan sebagai:

Di WordPress, term merupakan klasifikasi, kelompok atau subset dari Taksonomi, di mana ia dapat menjadi Kategori, Tag atau Taksonomi Khusus.  Standarnya, term memiliki judul, slug dan deskripsi.  Taksonomi hirarkis seperti kategori dapat menentukan term induk.

Akhirnya, hubungan antara taksonomi dan term begitu penting sehingga salah satu tidak dapat benar-benar hadir tanpa yang lain (terutama dalam taksonomi hirarki).  Artinya, taksonomi kategori harus memiliki setidaknya satu term yang terkait dengannya; namun, taksonomi non-hirarkis tidak harus mengikuti hal itu.

Dengan itu, mari kita mulai bekerja dengan Term Metadata API.

Bekerja dengan API

Seperti API metadata lainnya yang tersedia, kita akan bisa melakukan hal-hal seperti:

  • menambahkan
  • memperbarui
  • Mengambil kembali
  • menghapus

Dan karena ini merupakan API baru, beberapa kelebihan dari API ini mungkin belum begitu jelas.  Meskipun kita hanya akan mengeksplorasi beberapa dasar-dasar dalam artikel ini, ada baiknya mempertimbangkan beberapa hal yang dapat kita lakukan.

Sebagai contoh:

  • Mangaitkan warna atau gambar dengan sebuah term
  • Membatasi posting tertentu yang termasuk dalam sebuah term
  • Menambahkan data biner, seperti dokumen atau PDF, untuk term yang bisa dibuat tersedia di front-end
  • ... dan banyak lagi.

Tentu saja, masih banyak lagi kemungkinan.  Tapi, untuk saat ini, mari kita lihat bagaimana kita bisa memasukkan hal ini ke dalam kerjaan kita.

Mempersiapkan Tema

Untuk memulainya, mari kita pastikan bahwa kita mengerti tentang apa yang akan kita gunakan untuk menyelesaikan kerjaan ini.  Secara khusus, inilah yang anda butuhkan, dan inilah yang saya gunakan.

Setelah anda menyiapkan semua ini, maka kita akan siap untuk bekerja.  Jika anda memerlukan bantuan untuk menyiapkan sarana pengembangan anda, silakan lihat rangkaian artikel ini.

Memulai

Hal pertama yang perlu kita lakukan adalah membuat file yang akan berisikan semua kerjaan yang akan kita lakukan di tutorial ini.

Pertama, kita perlu membuat tutsplus-term-metadata.php di root direktori tema twentysixteen.

Selanjutnya, kita perlu menambahkan baris kode berikut ke file tema functions.php.  Hal ini dilakukan untuk memastikan bahwa kita memasukan karya kita sesuai tema.

Saat memuat ulang browser anda, anda harus melihat gambar seperti berikut:

The standard Hello World that comes with WordPressThe standard Hello World that comes with WordPressThe standard Hello World that comes with WordPress

Seharusnya tidak ada kesalahan hasil, dan seharusnya ia berfungsi dengan baik seolah-olah tidak ada yang berubah.  Akhirnya, jika anda bekerja dengan instalasi baru WordPress, tabel term metadata seharusnya terlihat benar-benar kosong:

The empty termmeta database tableThe empty termmeta database tableThe empty termmeta database table

Selanjutnya, untuk memastikan bahwa kita memiliki kategori yang akan kita gunakan, lanjutkan dan buatlah kategori baru di instalasi WordPress anda.  Saya akan membuat catagori yang disebut Main dan memastikan bahwa Hello World ditandai dengan ini.

Setelah selesai, lihat tabel term dalam database untuk mendapatkan term_id.  Dalam kasus saya, term_id nya 2. Punya anda mungkin berbeda, namun intinya adalah anda mengetahui ID dari term yang dimaksud:

The terms database tableThe terms database tableThe terms database table

Perhatikan saat kita akan menggunakan ini selama tutorial.

Menambahkan Metadata

Untuk memulainya, penting untuk mengenali bahwa fungsi add_term_meta dapat menjalankan dua tujuan:

  1. Fungsi ini dapat menciptakan nilai non-unik yang terkait dengan ID satu term dan satu kunci meta.
  2. Fungsi ini dapat menciptakan nilai unik yang terkait dengan ID term tunggal dan satu kunci meta tunggal.

Fungsi menerima ID term, kunci meta, nilai meta, dan nilai boolean opsional yang menentukan apakah nilai yang disimpan itu unik atau tidak.

Nilai unik

Pertama, mari membuat nilai unik dalam database.  Masukkan kode berikut di editor anda, refresh Hello World, dan kemudian lihat tabel termmeta.

Anda harus melihat informasi anda.

Metadata in the term tableMetadata in the term tableMetadata in the term table

Jika anda mengubah nilai meta dan merefresh halaman, anda harus perhatikan bahwa nilai dalam database tidak berubah. karena anda pernah mengatakan bahwa ini harus menjadi nilai unik dan nilai pertama yang ditulis tidak akan diubah atau diganti.

Hal ini dapat dicapai dengan update_term_meta, tapi kita akan melihat kode itu sejenak.

Nilai Non-Unik

Sebelum melihat bagaimana kita bisa memperbarui meta term, mari kita lihat bagaimana kita dapat menambahkan beberapa nilai ke kunci meta yang sama dan ID term yang sama.  Kode di bawah ini terlihat sama dengan kode di atas kecuali kita tidak membawa true ke fungsi.

Refresh Hello World beberapa kali lalu lihat database.  Anda harusnya melihat sesuatu seperti ini:

Non-unique values being added to the database tableNon-unique values being added to the database tableNon-unique values being added to the database table

Masuk akal?  Pada dasarnya, ketikaanda mengatakan bahwa anda ingin memiliki nilai unik, nilai pertama yang anda masukkan akan bertahan sebagai satu-satunya nilai (kecuali jika anda memperbarui atau menghapusnya).

Jika, di sisi lain, anda tidak menentukan bahwa anda menginginkannya menjadi nilai unik, maka anda dapat menyimpan sebanyak mungkin nilai yang anda inginkan dengan ID term dan kunci meta.

Namun, hal ini akan membuka jalan untuk mengambil informasi dan menghapus informasi secara berbeda dari database; kita akan melihat ini lebih rinci nanti di artikel.

Memperbarui Metadata

Fungsi API update_term_meta memberi kita beberapa pilihan bagus.  Pertama, ia memberi kita kemampuan untuk menambahkan satu entri unik ke dalam database tanpa harus menggunakan parameter keempat add_post_meta.

Kedua, ia memungkinkan kita untuk mengupdate metadata tertentu selama kita mengetahui nilai sebelumnya.  Mari kita lihat kedua kasus ini mengingat keadaan database kita saat ini.

Menambahkan Data Unik

Untuk menambahkan metadata yang unik, kita bisa membuat panggilan yang sangat mirip dengan apa yang kita lihat di contoh pertama ke add_term_meta.  Sebagai gantinya, kali ini kita akan menggunakan update_term_meta.  Misalnya, tinjau kode berikut ini:

Refresh Hello World beberapa kali dan tidak peduli berapa kali anda merefreshnya, anda akan melihat satu nilai masuk ke dalam database.  Jika anda mengikuti kode ini, anda harus melihat hal seperti ini:

Adding metadata via the update_term_meta functionAdding metadata via the update_term_meta functionAdding metadata via the update_term_meta function

Tapi apa jadinya bila ada banyak catatan dengan meta key yang sama dan kita ingin memperbaruinya?

Memperbarui Record Non-Unik

Untuk memperbarui record yang memiliki ID term yang sama dan meta kunci yang sama, penting untuk mengetahui nilai sebelumnya.  Dalam kasus kami, kami tahu bahwa kami memiliki nilai yang disebut my_meta_value_1.

Untuk itu, kami dapat memperbarui baris spesifik ini dengan menetapkan nilai baru dan nilai lama pada fungsi update_term_meta.  Untuk melakukan hal ini, lihat kode berikut ini:

Dan kemudian refresh Hello World.  Setelah selesai, nilai meta yang diperbarui akan terlihat seperti ini:

Updating non-unique metadataUpdating non-unique metadataUpdating non-unique metadata

Jika anda tidak melihat hasil yang sama, pastikan bahwa anda benar-benar menentukan nama fungsi yang benar di hook anda, ID term tertulis, kunci meta yang tepat, dan nilai meta sebelumnya yang tepat.

Mengambil metadata

Untuk mendapatkan metadata yang telah kita dapatkan, kita dapat menggunakan fungsi get_term_meta.

Namun, perhatikan bahwa ketika kita mengambil metadata term, kita mungkin berurusan dengan kunci meta yang memiliki beberapa nilai terkait dengannya.  Atau kita mungkin berhubungan dengan kunci meta yang hanya memiliki satu nilai saja.

Kita perlu menentukan informasi yang berbeda pada fungsinya tergantung pada situasinya.

Mengambil Semua Metadata

Memperoleh semua metadata yang terkait dengan satu term mudah untuk dilakukan, seperti yang ditunjukkan kode di bawah ini.  Hal utama yang harus diperhatikan adalah hasilnya harus dikembalikan dalam array.

Pada contoh di bawah ini, kita akan menggunakan non_unique_key sebagai kunci meta karena memiliki beberapa nilai terkait dengannya.

Anda dapat memilih untuk menggemakan hasilnya ke layar, anda dapat memilih untuk menggunakan var_dump, atau anda dapat memilih untuk menggunakan debugger untuk melihat informasinya.  Apapun kasusnya, anda harus melihat hal seperti berikut sebagai hasil anda:

Dengan output ini, anda dapat memilih untuk menyimpannya dalam variabel dan kemudian mengambil nilai tertentu dari indeks tertentu.  Atau mungkin anda memilih untuk mengulang data dan membaca atau memanipulasinya.

Apapun kasus penggunaan anda, inilah cara anda agar dapat mengambil semua informasi yang terkait dengan kunci meta.

Mengambil Bagian Tunggal Metadata

Ketika kita berbicara tentang mengambil satu bagian metadata, biasanya kita bermaksud untuk mengambil satu riwayat dari banyak bagian (seperti contoh di atas); namun, mungkin ada kasus di mana kami ingin mengambil satu nilai meta yang dikaitkan dengan satu kunci meta tunggal.

Kita akan membicarakan kasus selanjutnya sebentar lagi.  Tapi pertama, mari kita bahas kasus di mana kita ingin mengambil satu nilai dari sekumpulan data yang memiliki ID term dan kunci meta yang sama.

Perhatikan pada kode di bawah ini, kami melewati nilai keempat, true:

Dan inilah yang dikembalikan:

Perhatikan bahwa ini mengembalikan nilai pertama yang ditemukannya, dan ia melakukannya dalam bentuk string.

Bagaimana jika Hanya Ada Satu Record?

Jika hanya ada satu record, maka anda punya dua pilihan:

  1. Anda dapat mengambil informasi tanpa menentukan true.
  2. Anda dapat mengambil informasi dengan menentukan true.

Jika anda memilih perkara pertama, maka anda akan memperoleh kembali array dengan satu indeks dan satu nilai tunggal.  Dengan demikian, anda harus mengambil nilai dari hasil dengan melakukan sesuatu seperti $value = $result [0] dengan asumsi bahwa anda menyimpan hasil pemanggilan fungsi dalam $result.

Di sisi lainnya, jika anda memilih opsi kedua, maka anda dapat mengharapkan hasilnya dikembalikan kepada anda sebagai string.

Bisa dikatakan, hal yang paling penting untuk dicatat mengenai kedekatani nilai-nilai strategi khusus ini adalah bahwa nilai-nilai itu unik karena kunci meta mereka.

Menghapus Metadata

Akhirnya, kita perlu melihat penghapusan metadata yang terkait.  Dan, sesuai dengan contoh lainnya, hal ini bergantung pada apakah ada beberapa metadata yang dikaitkan dengan kunci meta atau satu nilai meta yang dikaitkan dengan satu kunci meta.

Menghapus semua record

Jika anda tahu bahwa ada satu meta kunci yang memiliki beberapa nilai yang terkait dengannya, maka anda dapat menggunakan kode berikut:

Dan itu akan memperbaharui tabel database sedemikian rupa sehingga terlihat seperti ini:

Deleting multiple rows of information in the databaseDeleting multiple rows of information in the databaseDeleting multiple rows of information in the database

Jika anda telah mengikuti, maka anda tahu bahwa ia menghapus semua data yang terkait dengan kunci meta non_unique_key.

Menghapus Record Tunggal

Jika anda ingin menghapus satu record, berarti ada dua cara untuk melakukannya:

  1. Anda tahu nilai meta yang terkait dengan kunci meta yang ingin anda hapus.
  2. Nilai yang terkait dengan kunci meta spesifik bersifat unik karena kunci meta dan nilai metanya unik.

Untuk itu, kita akan melihat contoh pertama di bagian ini, dan kita akan melihat contoh kedua di bagian ini.

Untuk menghapus satu record di mana kita mengetahui nilai meta yang terkait, kita dapat menulis kode yang menentukan baik kunci meta dan nilai meta.  Contohnya:

Ia akan menghapus baris yang terkait dengan informasi ini dari database.

Menghapus Record Unik

Akhirnya, jika ada satu record unik dimana anda tahu kunci meta tapi anda tidak tahu nilai meta, maka anda tetap bisa menghapus record itu dari database.

Yang perlu anda tentukan di kode sumber adalah kunci meta.  Lihat dalam fungsi berikut:

Pembaca yang cerdik mungkin akan menangkap bahwa fungsi di atas adalah definisi fungsi yang sama dengan yang kita berikan saat menghapus record yang memiliki semua nilai berlipat ganda.  Dan itu karena mereka sama.

Namun, perbedaannya adalah maksud dari fungsinya.  Tujuan fungsi sering akan mengarahkan bagaimana kita memberi nama fungsi.  Pada kasus sebelumnya, kami ingin menghapus semua term metadata.  Dalam kasus ini, kami ingin menghapus satu metadata term.

Hal ini berimplikasi ketika harus menulis kode berkualitas dan ketika harus menulis unit test.

Kode Sumber Lengkap

Di sini, anda akan menemukan semua kode yang telah kami gunakan selama posting ini bersama dengan komentar tambahan yang menjelaskan apa yang terjadi dalam kode.  Ingat bahwa semua fungsi ini terhubung ke the_content, yang berarti bahwa fungsi akan muncul setiap kali posting dimuat.

Dengan demikian, panggilan add_filter dikomentari sehingga anda dapat mengaktifkannya sesuai kebutuhan.

Sama sekali tidak biasa untuk menemukan fungsi seperti ini terhubung ke hook lain seperti save_post atau yang serupa. Hal ini adalah sesuatu yang akan kita bahas secara lebih rinci dalam tutorial lanjutan di tahun ini.

Kesimpulan

Bagi mereka yang telah mengikuti seri ini dan seri sebelumnya dan yang mengerjakan API metadata lainnya, sebagian besar materi yang tercakup dalam seri ini tidaklah sulit untuk dipahami.

Mungkin bagian tersulit bekerja dengan API ini adalah melatih kreativitas anda pada banyak cara yang benar-benar dapat digunakan.  Tapi karena kita telah membahas bagaimana bekerja dengan API, menerapkannya seharusnya tidaklah menjadi terlalu sulit.

Ingat bahwa dalam beberapa minggu ke depan, kita akan melihat teknik yang canggih dan tepat untuk menulis dan membaca informasi ke dalam database sehingga kita berada dalam posisi untuk bekerja dengan mereka di lingkungan produksi.

Sementara itu, jika anda mencari utilitas lain guna membantu anda membangun perangkat anda yang berkembang untuk WordPress atau kode untuk dipelajari dan menjadi lebih berpengalaman di WordPress, jangan lupa untuk melihat apa yang tersedia di Pasar Envato.

Ingat, anda dapat mengikuti semua kursus dan tutorial saya di halaman profil saya, dan anda dapat mengikuti saya di blog dan / atau Twitter di @tommcfarlin tempat saya berbicara tentang berbagai praktik pengembangan perangkat lunak dan bagaimana kami dapat menggunakannya di WordPress.

Jangan ragu untuk meninggalkan pertanyaan atau komentar apa pun di feed di bawah ini, dan saya akan berusaha menanggapi setiap pertanyaan tersebut.

Sumber Terkait

Advertisement
Did you find this post useful?
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.