Membuat filter taksonomi kustom pada admin wordpress
Photo by webfactoryltd on Unsplash
Jika Anda memiliki banyak posting khusus pada situs web Anda, terkadang akan lebih mudah untuk memfilternya dengan taksonomi tertentu saat mengelolanya di admin WordPress Anda.
Pada artikel ini mangcoding akan berbagi cara Membuat filter taksonomi kustom pada admin wordpress sehingga akan mempermudah Anda untuk memfilter postingan dengan taksonomi secara kustom.
Begini tampilannya di admin WordPress, silahkan perhatikan gambar dibawah ini !
Setelah melihat hasil tampilan diatas, dibawah ini adalah kode yang memungkinkan untuk menambahkan filter taksonomi untuk taksonomi tertentu :
<?php
add_action( 'restrict_manage_posts', 'rudr_taxonomy_filter' );
function rudr_taxonomy_filter( $post_type ) {
// do nothing it it is not a post type we need
if( 'lesson' !== $post_type ) {
return;
}
$taxonomy_name = 'course_category';
// get all terms of a specific taxonomy
$courses = get_terms(
array(
'taxonomy' => $taxonomy_name,
'hide_empty' => false
)
);
// selected taxonomy from URL
$selected = isset( $_GET[ $taxonomy_name ] ) && $_GET[ $taxonomy_name ] ? $_GET[ $taxonomy_name ] : '';
if( $courses ) {
?>
<select name="<?php echo $taxonomy_name ?>">
<option value="">All courses</option>
<?php
foreach ( $courses as $course ) {
?><option value="<?php echo $course->slug ?>"<?php selected( $selected, $course->slug ) ?>><?php echo $course->name ?></option><?php
}
?>
</select>
<?php
}
}
Apa yang harus Anda diingat di sini :
- Kita menggunakan $post_type argumen fungsi untuk membuat kondisi, sehingga filter hanya akan ditampilkan untuk jenis posting tertentu. Tetapi argumen ini hanya tersedia dari versi WordPress 4.4, jadi jika Anda menggunakan versi WP yang lebih lama, silakan gunakan global $typenow saja.
- Selanjutnya Jika Anda tidak tahu di mana harus memasukkan kode, silakan baca tutorial ini.
- Coba perhatikan baris 26, string “All course” juga bisa dicetak secara dinamis, misalnya: $taxonomy->labels->all_items tapi tentu saja Anda harus mendapatkan objek taksonomi terlebih dahulu dengan $taxonomy = get_taxonomy( $taxonomy_name ).
Dan juga dimungkinkan untuk menyederhanakan filter dengan mengubah HTML menjadi wp_dropdown_categories() dan bisa memperluasnya ke beberapa taksonomi.
add_action( 'restrict_manage_posts', 'rudr_taxonomy_filter' );
function rudr_taxonomy_filter( $post_type ){
// let's decide about post type first
if( 'my_post_type' !== $post_type ){
return;
}
// pass multiple taxonomies as an array of their slugs
$taxonomies = array( 'taxonomy_1', 'taxonomy_2' );
// for every taxonomy we are going to do the same
foreach( $taxonomies as $taxonomy ){
$taxonomy_object = get_taxonomy( $taxonomy );
$selected = isset( $_GET[ $taxonomy ] ) ? $_GET[ $taxonomy ] : '';
wp_dropdown_categories(
array(
'show_option_all' => $taxonomy_object->labels->all_items,
'taxonomy' => $taxonomy,
'name' => $taxonomy,
'orderby' => 'name', // slug / count / term_order etc
'value_field' => 'slug',
'selected' => $selected,
'hierarchical' => true,
)
);
}
}
Itulah artikel yang dapat Mangcoding sharing. Mudah-mudahan artikel ini bisa bermanfaat dan dapat memberikan pengetahuan baru untuk Anda. Jika ada kritik serta saran yang dapat membangun, silahkan komentar atau kirim melalui Email dan Media sosial Mangcoding.
Sumber : Membuat filter taksonomi kustom pada admin wordpress