Cara Menghapus “All Posts, Published, and Trash” di Dashboard Posts WordPress

Kilaaja.top – Jika Anda mencari cara untuk sepenuhnya menghapus semua postingan yang ada di wordpress anda, baik yang sudah diterbitkan, dan yang ada di sampah di posting dasbor admin WordPress atau jenis postingan khusus. Maka artikel ini akan memberi Anda langkah-langkah lengkap untuk memungkinkan Anda melakukannya.

Secara default, WordPress menampilkan semua halaman/postingan dalam daftar area admin, terlepas dari apakah dipublikasikan atau tidak. Jika Anda akan merujuk ke tangkapan layar di bawah ini maka Anda dapat melihat jumlah All, Published, dan trash.

Cara Menonaktifkan (atau Menghapus) “Semua Posting, Diterbitkan, dan Sampah” di Postingan Dasbor

Sekarang, kami ingin menghapus opsi semua postingan dan yang ada di tempat sampah. Terkadang Anda akan mendapatkan lebih banyak opsi di dasbor Anda seperti pending, draft.

Class WP_Posts_List_Table class extends WP_List_Table dan di dalam metode WP_List_Table::views() kami memiliki filter tampilan dinamis berikut:

/**
 * Filter the list of available list table views.
 *
 * The dynamic portion of the hook name, `$this->screen->id`, refers
 * to the ID of the current screen, usually a string.
 *
 * @since 3.5.0
 *
 * @param array $views An array of available list table views.
 */
$views = apply_filters( "views_{$this->screen->id}", $views )

Jadi, kita dapat menggunakan filter views_edit-post yang dihasilkan untuk menyesuaikan tampilan tabel daftar postingan.

Cara Menghapus “All Posts, Published, and Trash” di Dashboard Posts

Mari kita hapus all, publish, draft, pending dan trash untuk non-admin

Anda cukup menyalin dan menempelkan kode berikut ke file functions.php tema Anda

<?php

/**
 * Remove the 'all', 'publish', 'draft', 'pending', 'trash' 
 * views for non-admins
 */

add_filter( 'views_edit-post', function( $views )
{
    if( current_user_can( 'manage_options' ) )
       // return $views;

    $remove_views = [ 'all', 'publish', 'draft', 'pending', 'trash' ];

foreach( (array) $remove_views as $view )
{
    if( isset( $views[$view] ) )
        unset( $views[$view] );
}
return $views;
} );

Pada kode di atas, Anda dapat melihat filter “view_edit-post” yang hanya berfungsi untuk dasbor posting.

Cara Menghapus “All Posts, Published, and Trash” untuk jenis posting khusus di Dashboard

Jika Anda memiliki jenis postingan yang khusus, maka yang Anda perlukan adalah memodifikasi filter seperti “view_edit-custom-post-type”.

Sebagai contoh: Misalkan saya memiliki jenis posting khusus bernama resep, maka saya akan memanggil filter “view_edit-recipe”.

<?php

/**
 * Remove the 'all', 'publish', 'draft', 'pending', 'trash' 
 * views for non-admins
 */

add_filter( 'views_edit-recipe', function( $views ) // recipe custom post type
{
    if( current_user_can( 'manage_options' ) )
       // return $views;

    $remove_views = [ 'all', 'publish', 'draft', 'pending', 'trash' ];

foreach( (array) $remove_views as $view )
{
    if( isset( $views[$view] ) )
        unset( $views[$view] );
}
return $views;
} );

Catatan: tautan status “all” dan “mine” di-hard-code dalam metode get_views() dari Class WP_Posts_List_Table tidak dapat difilter.

Kesimpulan

Nah, Dalam artikel ini Anda akan mendapatkan langkah-langkah lengkap untuk Menonaktifkan (atau Menghapus) “Semua Postingan, Diterbitkan, dan Sampah” di Postingan Dasbor. Anda dapat memperluas fungsionalitas sesuai kebutuhan Anda. Saya harap Anda menemukan tutorial ini bermanfaat untuk proyek Anda. Terus belajar!.