7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. WordPress

Menguasai Meta Data WordPress: Memahami dan Menggunakan Array

Scroll to top
Read Time: 6 mins

Indonesian (Bahasa Indonesia) translation by Rakhmad Apriansyah (you can also view the original English article)

Pada bagian pertama dari seri ini, kita bahas apa itu meta data WordPress, bagaimana meta data diambil, dan jenis-jenis data (seperti objek atau array) di mana data itu bisa dikembalikan. Sekarang saatnya untuk belajar tentang berbagai jenis array (susunan/daftar).

Ketika kamu menulis sebuah array secara manual Kamu tahu strukturnya apa dan nama dari setiap indeks itu apa. Tetapi ketika Kamu membangun array dengan meng-query-kan (menguraikan) database, Kamu bakal perlu melakukan beberapa pekerjaan 'detektif' untuk menentukan struktur data yang dikembalikan dan nama-nama indeksnya.

Type dari Array/Susunan

Sebelum benar-benar melompat membahas berbagai jenis array yang tersedia, penting untuk memahami bahwa sebuah array PHP adalah variabel manapun yang berisi lebih dari satu potongan data.

Array Asosiatif versus Terindeks

Contoh sederhana array adalah daftar nilai-nilai yang dipisahkan dengan koma, dalam fungsi array(), seperti ini:

PHP secara otomatis mengindeks array yang dibuat dalam daftar dengan dipisahkan koma, menetapkan setiap item indeks numerik, mulai dari nol. Ini berarti bahwa kita bisa mengambil nilai item kedua yaitu 'Leia' dari array $heroes dengan menentukan indeksnya 1.

Beginilah hasilnya:

Untuk contoh praktis WordPress, lihatlah fungsi wp_get_attachment_image_src() yang menghasilkan array terindeks dari informasi tentang gambar.

Kita bisa mendapatkan URL, lebar dan tinggi dari suatu gambar menggunakan angka indeks dari array yang fungsi ini kembalikan (Perhatikan bahwa angka '7' yang dimasukkan dalam fungsi merujuk pada ID lampiran, dan dalam kasus ini cuma untuk contoh doang):

Tentu aja, melacak nomor indeks array bisa membingungkan, itulah sebabnya PHP memungkinkan kita untuk membuat array asosiatif. Kembali ke contoh $heroes kita, kita memberi nama setiap item dalam array kita:

Kita sebut nama ini key. Dalam array ini, kita sebut tombol 'unlikely_hero' memiliki nilai 'Luke'. Kita bisa mendapatkan nilai dari key ini dengan menempatkannya dalam tanda kurung di samping variabel. Contohnya:

Array Multi-dimensi

Sejauh ini, kita udah lihat array yang pada dasarnya adalah daftar item, tapi array bisa juga terdiri dari array lain. Kita menyebutnya array multi-dimensi. Ketika membuat array multi-dimensi, kita pada dasarnya punya daftar dari daftar, dimana setiap indeks atau key dalam array kita didefinisikan oleh array yang lain.

Contohnya:

Array semacam ini sangat berguna karena memungkinkan kita untuk 'men-loop' (mengulang), tulis markup sekali dan biarkan PHP mengulangnya sebanyak mungkin.

Alat-alat untuk Pekerjaan 'Detektif'

Seperti yang gue bilang di awal artikel ini, bekerja dengan meta data bisa aja sering melibatkan beberapa 'kerja detektif' untuk menemukan struktur array. Selayaknya detektif, Kamu beneran perlu punya alat yang tepat untuk kerjaan ini.

Pengembang amatir memodifikasi file tema mereka untuk nilai array secara sementara. Tetapi kalo Kamu ingin bekerja dengan cepat dan efisien Kamu perlu melakukannya dengan cara pro yakni dengan konsol debug.

Pengembang amatir memodifikasi file tema mereka untuk nilai array secara sementara. Tetapi kalo Kamu ingin bekerja dengan cepat dan efisien Kamu perlu melakukannya dengan cara pro yakni dengan konsol debug.

Apa itu Konsol Debug?

Konsol debug adalah satu dari beberapa Pengaya untuk plugin Debug Bar yang bisa dibilang pengembang WordPress tidak bisa hidup tanpanya. Kalo kamu belum punya Debug Bar terinstal dalam lingkungan pengembanganmu Kamu perlu itu secepatnya.

Setelah Kamu punya dua plugin terinstal, Kamu bakal bisa mengakses konsol dari panel admin, di mana Kamu bisa menjalankan kode PHP. Sekarang daripada memodifikasi file tema, menyimpan dan menyegarkan, Kamu bisa cuma mencoba-coba kode langsung di browser.

Cukup klik 'run' dan lihat hasilnya di bagian bawah layar. Bagian terbaik adalah bahwa setiap kesalahan yang Kamu hasilkan akan ditunjukkan dalam kotak hasil, bukan pada halaman depan situs Kamu. Kesalahan fatal merusak konsol debug, bukannya situs Kamu.

Ngomong-ngomong, gue juga baru aja menyadari apa yang bisa Debug Bar lakukan. Juga, Debug Bar dan konsol Debug, serta kebanyakan utilitas keren lain ada dalam Plugin Developer, yang gua sarankan banget. Saat Kamu belajar kerja pakai meta data Kamu mungkin juga bakal tahu bahwa plugin Debug Bar Post Meta cukup berguna juga.

var_dump vs print_r

Sekarang Kamu ada tempat untuk melakukan pengujian Kamu sebagaimana Kamu menelusuri bagian dalam dari array. Dipekerjaan yang ini, PHP memberi kita dua fungsi utilitas yang kita tidak akan pernah gunakan untuk membuat keluaran front-end, tetapi sempurna untuk kerja diagnostik —var_dump() dan print_r().

Kedua fungsi ini mengambil variabel berisi sebuah array sebagai input dan output isinya buat kita periksa. var_dump () berisi informasi lebih lanjut seperti tipe data (string, boolean, integer, dll) dan panjang data, sementara print_r() dirancang untuk lebih mudah dibaca manusia dan melangkahi informasi tambahan.

Menggunakan var_dump untuk menemukan indeks atau kunci

var-dumpvar-dumpvar-dump

Berikut adalah screenshot dari var_dump-nya meta data untuk sebuah post. Ini memperlihatkan bagaimana gua cuma taruh ke satu bagian. Tujuan gue adalah buat mendapatkan nilai isian meta title yang diciptakan oleh WordPress SEO dari Yoast plugin.

Seperti yang Kamu lihat dari var_dump, yang gua hasilkan dari semua isian meta untuk post ID #1 dengan get_post_meta (1); Gua pakai array asosiatif, multi-dimensi, yang berisi array terindeks dengan cuma satu indeks. Dengan memeriksa var_dump, gua menemukan bahwa key yang gua butuhkan adalah '_yoast_wpseo_title' dan itulah informasi aktual yang gue butuhkan dalam indeks pertama. Untuk mengaksesnya, gue meletakkan key '_yoast_wpseo_title' dalam variabelnya sendiri, dan kemudian di 'echo' indeks pertama seperti begini:

Ini adalah contoh yang baik untuk menggambarkan strategi untuk menemukan key yang diperlukan, namun bukan cara yang paling efisien untuk mendapatkan informasi, setelah Kamu tahu kuncinya. Jadi, setelah melakukan kerjaan detektif untuk menemukan key yang tepat, gua akan menetapkan tombol langsung dalam panggilan untuk get_post_meta(). Ketika kita hanya butuh satu kunci, Kamu bisa menentukan secara langsung dalam argumen kedua dari get_post_meta().

Penting untuk diingat bahwa get_post_meta (1 ' _yoast_wpseo_title'); tidak akan menghasilkan nilai yang kita mau, tetapi justru menghasilkan array. Dengan menambahkan true untuk argumen ketiga 'single' kita dapat indeks pertamanya saja, yang mana inilah yang kita mau.

Jadi, untuk langsung meng-echo SEO title, semuanya dalam satu baris kita lakukan ini:

Menggunakan get_user_meta()

Sejauh ini dalam seri ini, gua udah nunjukkin ke Kamu bagaimana bekerja dengan tabel wp_postmeta, yang berisi semua isian kustom (custom fields) yang ditambahkan ke post type.

Pengguna dapat memiliki isian kustom juga. Data meta pengguna, isian tambahan yang dimasukkan ke profil pengguna bekerja dengan cara yang sama seperti post meta data, tetapi disimpan dalam tabel wp_usermeta. Waktu kerja pakai meta data pengguna, bukannya get_post_meta(), kita gunakan get_user_meta().

Kedua fungsi itu bekerja dengan cara serupa,hanya saja datanya berasal dari dua tabel berbeda dalam database.

Berikut adalah contoh memakai get_user_meta() untuk menghasilkan gambar kustom sebagai link ke penulis post:

Selanjutnya ...

Dalam kedua bagian dari seri ini, kita telah meneliti berbagai jenis meta data, bagaimana tersimpannya, dan bagaimana kita bisa mengambilnya. Selain itu, kita telah melihat dua jenis array yang ditawarkan PHP, dan bagaimana kaitannya dengan meta data yang terkait dengan post dan pengguna.

Dalam bagian selanjutnya dari seri ini, kita akan melihat bagaimana persisnya kita bisa beralih melalui setiap tipe data sehingga kita memiliki kemampuan dan fleksibilitas untuk menyesuaikan output bagi template kita.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
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.