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 !

custom taxonomy mangcoding

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 bisa Mangcoding share Membuat filter taksonomi kustom pada admin wordpress, mudah-mudahan artikel ini bisa bermanfaat untuk teman-teman semua.

Referensi : Rudrastyh