Cara merubah tag meta box default menjadi kategori meta box
Photo by Mikhail Nilov on Pexels
Hello Everyone, pembahasan Artikel pada kesempatan kali ini adalah merubah Meta Box pada WordPress atau tepatnya adalah Cara merubah tag meta box default menjadi kategori meta box sehingga Meta Box akan terlihat lebih bagus dan elegan, Silahkan perhatikan gambar dibawah ini.
Seperti yang Anda lihat, kotak meta baru menampilkan semua tag sekaligus. Mengapa kita membutuhkan penggantian ini? Mungkin beberapa teman akan merasa nyaman dan bermanfaat jika Meta Box dibuat seperti gambar diatas. Anda juga dapat melakukan lebih banyak hal dengan jQuery.
Kami akan menunjukkan cara melakukan penggantian ini dalam dua langkah mudah. Cukup masukkan kode dari langkah pertama dan kedua ke dalam functions.php file Anda dan semuanya akan berfungsi. Yuk kita mulai.
Langkah 1. Hapus Kotak Meta Tag Lama
Untuk membuat yang baru, kita perlu menghapus yang lama. Hanya karena WordPress tidak mendukung filter dan tindakan yang memungkinkan untuk mengubah konten metabox. Kita tidak boleh mengubah file inti WordPress.
/* * Meta Box Removal */ function rudr_post_tags_meta_box_remove() { $id = 'tagsdiv-post_tag'; // you can find it in a page source code (Ctrl+U) $post_type = 'post'; // remove only from post edit screen $position = 'side'; remove_meta_box( $id, $post_type, $position ); } add_action( 'admin_menu', 'rudr_post_tags_meta_box_remove');
Langkah 2. Buat yang baru seperti kotak meta kategori
Kami hanya menggunakan 3 fungsi WordPress, diantaranya :
- add_meta_box()
- get_terms() — untuk mendapatkan semua tag yang ada
- get_the_terms() — untuk mendapatkan semua tag yang ditetapkan untuk dikirim
Untuk lebih jelasnya silahkan perhatikan kode dibawah ini!
/* * Add */ function rudr_add_new_tags_metabox(){ $id = 'rudrtagsdiv-post_tag'; // it should be unique $heading = 'Tags'; // meta box heading $callback = 'rudr_metabox_content'; // the name of the callback function $post_type = 'post'; $position = 'side'; $pri = 'default'; // priority, 'default' is good for us add_meta_box( $id, $heading, $callback, $post_type, $position, $pri ); } add_action( 'admin_menu', 'rudr_add_new_tags_metabox'); /* * Fill */ function rudr_metabox_content($post) { // get all blog post tags as an array of objects $all_tags = get_terms( array('taxonomy' => 'post_tag', 'hide_empty' => 0) ); // get all tags assigned to a post $all_tags_of_post = get_the_terms( $post->ID, 'post_tag' ); // create an array of post tags ids $ids = array(); if ( $all_tags_of_post ) { foreach ($all_tags_of_post as $tag ) { $ids[] = $tag->term_id; } } // HTML echo '<div id="taxonomy-post_tag" class="categorydiv">'; echo '<input type="hidden" name="tax_input[post_tag][]" value="0" />'; echo '<ul>'; foreach( $all_tags as $tag ){ // unchecked by default $checked = ""; // if an ID of a tag in the loop is in the array of assigned post tags - then check the checkbox if ( in_array( $tag->term_id, $ids ) ) { $checked = " checked='checked'"; } $id = 'post_tag-' . $tag->term_id; echo "<li id='{$id}'>"; echo "<label><input type='checkbox' name='tax_input[post_tag][]' id='in-$id'". $checked ." value='$tag->slug' /> $tag->name</label><br />"; echo "</li>"; } echo '</ul></div>'; // end HTML }
Anda dapat menggunakan kode diatas tidak hanya untuk tag tetapi juga untuk taksonomi non-hierarkis apa pun pada WordPress.
Silahkan Anda coba praktekkan apa yang Mangcoding jelaskan pada Artikel diatas, mudah-mudahan artikel ini dapat bermanfaat dan bisa menyelesaikan masalah dan menjadi sebuah solusi untuk Anda terutama Cara merubah tag meta box default menjadi category meta box.
Referensi : Rudrastyh