Ada kondisi ketika Anda membutuhkan field tambahan khususnya untuk gambar-gambar pada custom field dan media uploader WordPress Anda. Contohnya, jika Anda memiliki custom post type berujudul ‘fotografi’, pada Media Uploader Anda sebaiknya ditambahkan nama fotografer yang bersangkutan serta url gambar serta situs pribadi milik forografer tersebut. Sangat tidak efisien jika Anda harus menambahkan informasi ini secara manual setiap kali Anda mengupload gambar baru. Dengan menambahkan kolom atau field baru di WordPress media, Anda bisa memasukkan informasi tersebut saat Anda mengupload gambar.

Menambahkan kolom di WordPress media jumlahnya tidak terbatas. Anda dapat memasukkan 10 kolom jika Anda mau dan jika dirasa perlu. Sebenarnya kita hanya menambahkan custom field seperti yang kita bisa lakukan di postingan. Tapi khusus untuk media uploader, kita akan gunakan filter attachment_fields_to_edit dan attachment_fields_to_save.

Untuk fungsi yang satu ini, Anda dapat menggunakan kode yang bisa dibuat ke dalam bentuk plugin yang dapat di non-aktikan jika dirasa tidak lagi diperlukan. Tapi kode di bawah juga bisa Anda gunakan dengan memasukkannya ke functions.php.


/**
* Add Photographer Name and URL fields to media uploader
*
* @param $form_fields array, fields to include in attachment form
* @param $post object, attachment record in database
* @return $form_fields, modified form fields
*/

function be_attachment_field_credit( $form_fields, $post ) {
$form_fields['be-photographer-name'] = array(
'label' => 'Photographer Name',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'be_photographer_name', true ),
'helps' => 'If provided, photo credit will be displayed',
);

$form_fields['be-photographer-url'] = array(
'label' => 'Photographer URL',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'be_photographer_url', true ),
'helps' => 'Add Photographer URL',
);

return $form_fields;
}

add_filter( 'attachment_fields_to_edit', 'be_attachment_field_credit', 10, 2 );

/**
* Save values of Photographer Name and URL in media uploader
*
* @param $post array, the post data for database
* @param $attachment array, attachment fields from $_POST form
* @return $post array, modified post data
*/

function be_attachment_field_credit_save( $post, $attachment ) {
if( isset( $attachment['be-photographer-name'] ) )
update_post_meta( $post['ID'], 'be_photographer_name', $attachment['be-photographer-name'] );

if( isset( $attachment['be-photographer-url'] ) )
update_post_meta( $post['ID'], 'be_photographer_url', esc_url( $attachment['be-photographer-url'] ) );

return $post;
}

add_filter( 'attachment_fields_to_save', 'be_attachment_field_credit_save', 10, 2 );

Kode di atas berfungsi untuk menambahkan sebuah kolom teks pada Media uploader WordPress. Kolom tersebut antara lain adalah kolom nama fotografer dan url. Nama kolom tersebut bisa Anda ganti sesuai keinginan dan juga dengan jumlah kolom yang Anda inginkan.

Nah, untuk menampilkan isi kolom tersebut di blog Anda, mungkin di bawah gambar tersebut, silahkan gunakan kode di bawah ini:

echo get_post_meta(get_post_thumbnail_id(), 'be_photographer_url', true);

* * * * *
Buku Formula Cinta

2 COMMENTS

LEAVE A REPLY