Data tipe pos khusus


Terkadang, kolom jenis pos kustom default mungkin tidak cukup, dan Anda perlu menyimpan data tambahan pada jenis pos kustom.

Untungnya, WordPress mendukung sesuatu yang disebut metadata pos, yang memungkinkan Anda menyimpan informasi tambahan tentang sebuah pos.

Mari kita lihat bagaimana Anda dapat menggunakan metadata pos pada sebuah pos atau jenis pos kustom.

Apa itu metadata pos

Metadata pos adalah cara untuk menyimpan informasi tambahan tentang sebuah pos di dalam basis data WordPress.

Metadata pos disimpan di tabel postmeta sebagai pasangan kunci-nilai. Jika Anda melihat tabel postmeta di basis data WordPress, Anda akan melihat bahwa tabel tersebut memiliki empat kolom: meta_id, post_id, meta_key, dan meta_value.

post_id adalah ID pos yang terkait dengan metadata tersebut. meta_key adalah nama kolom metadata, dan meta_value adalah nilainya.

Menambahkan metadata pos

Anda dapat menambahkan meta pos ke sebuah pos menggunakan add_post_meta fungsi. Fungsi ini menerima tiga parameter: ID pos, nama metadata, dan nilai metadata.

Misalnya, Anda ingin menambahkan kolom meta pos ke sebuah pos dengan ID 1, dan ingin menyimpan lokasi tempat pos tersebut ditulis sebagai London.

Anda dapat menggunakan kode berikut:

    add_post_meta( 1, 'location', 'London' );

Ada fungsi lain untuk bekerja dengan meta pos, seperti update_post_meta, delete_post_meta, dan get_post_meta.

Anda dapat membaca lebih lanjut tentang fungsi-fungsi ini dan cara menggunakannya dalam plugin di halaman Metadata dalam buku panduan pengembang plugin.

Panel Kolom Kustom

Menambahkan metadata pos melalui kode adalah salah satu cara, tetapi Anda juga dapat memungkinkan administrator situs menambahkan metadata pos melalui antarmuka admin WordPress.

Salah satu caranya adalah menggunakan panel Kolom Kustom untuk jenis pos tersebut.

Untuk mengaktifkan panel Kolom Kustom, pertama-tama Anda perlu memastikan bahwa jenis pos kustom Anda mendukung metadata.

Untuk melakukannya, Anda perlu menambahkan atau memperbarui argumen supports agar menyertakan dukungan untuk custom-fields

Kemudian, saat mengedit jenis pos kustom, klik ikon Opsi di editor, pilih Preferensi, klik Panel, lalu aktifkan tombol Kolom Kustom.

Editor akan dimuat ulang, dan Anda akan melihat panel Kolom Kustom di bagian bawah layar.

Di sini Anda dapat menambahkan kolom kustom baru, lalu memberinya nama dan nilai.

Misalnya, jika Anda ingin menambahkan nomor ISBN sebuah buku, Anda dapat menambahkan kolom kustom baru dengan nama isbn dan nilai berupa nomor ISBN tersebut.

Panel ini menggunakan fungsi add_post_meta untuk menambahkan metadata ke pos.

Nama kolom yang telah diisi sebelumnya untuk panel Kolom Kustom

Anda juga dapat mengisi kolom Nama pada panel Kolom Kustom dengan daftar kolom meta yang telah ditentukan sebelumnya.

Untuk melakukannya, Anda perlu mengaitkan ke postmeta_form_keys filter dan menambahkan nama kolom meta yang ingin Anda tampilkan di panel Kolom Kustom.

Filter postmeta_form_keys dijalankan sebelum HTML panel Kolom Kustom dirender, dan meneruskan dua parameter: array kunci meta dan objek pos.

Jika tidak ada kunci lain yang ditentukan, kueri akan dijalankan untuk mengambil kunci metadata yang sudah ada untuk pos tersebut.

Jadi, dengan memperbarui array kunci meta, Anda dapat menambahkan kunci kolom meta ke panel Kolom Kustom agar pengguna Anda lebih mudah menambahkan metadata yang benar.

Berikut adalah contoh cara melakukannya:

add_filter( 'postmeta_form_keys', 'bookstore_add_isbn_to_quick_edit', 10, 2 );
function bookstore_add_isbn_to_quick_edit( $keys, $post ) {
    if ( $post->post_type === 'book' ) {
        $keys[] = 'isbn';
    }
    return $keys;
}

Anda mendaftarkan fungsi callback ke filter postmeta_form_keys, dan menetapkan argumen yang diterima menjadi 2 agar dapat menerima kedua argumen dari filter tersebut.

Kemudian, periksa apakah jenis pos tersebut adalah buku, dan jika ya, tambahkan opsi isbn ke array $keys, lalu kembalikan array tersebut.

Jika jenis posnya adalah book, kolom meta isbn akan ditambahkan ke panel Kolom Kustom.

Jika Anda membuat atau mengedit buku dengan panel Kolom Kustom yang diaktifkan, Anda akan melihat kolom isbn tersedia untuk menambahkan metadata ke pos.

Kotak Meta Kustom

Cara lain untuk memungkinkan administrator situs menambahkan meta pos adalah dengan menggunakan kotak meta kustom.

Namun, bekerja dengan kotak meta kustom juga memerlukan pemahaman yang baik tentang pengembangan dengan mempertimbangkan keamanan, tetapi untuk saat ini Anda dapat membacanya di halaman Kotak Meta Kustom dalam buku panduan pengembang plugin.

Anda akan mempelajari cara bekerja dengan kotak meta dalam jalur pembelajaran pengembang plugin.