Kustomisasi layar Edit Posting untuk Jenis Posting Kustom?

15

Apa cara terbaik untuk menyesuaikan sepenuhnya layar admin Edit Posting untuk jenis posting khusus tertentu?

Saya telah menyesuaikannya sampai batas tertentu pada pembuatan jenis posting khusus - menambahkan bidang tambahan dll, tetapi saya ingin menghapus banyak elemen seperti permalinks, posting pratinjau, nonaktifkan pengeditan cepat dll.

masa depan
sumber

Jawaban:

16

Beberapa pertanyaan ini dijawab di sini: Tetapkan opsi Layar Admin Default & Urutan Metabox

Untuk menghapus metabox permalink:

function my_remove_meta_boxes() {
    remove_meta_box('slugdiv', 'my-post-type', 'core');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );

Selain itu, Anda harus menyembunyikan # edit-slug-box dengan css atau javascript. lihat: Memuat Skrip Eksternal di Admin tetapi HANYA untuk Jenis Posting Tertentu?

Untuk menonaktifkan edit cepat:

function my_remove_actions( $actions, $post ) {
    if( $post->post_type == 'my-post-type' ) {
        unset( $actions['inline hide-if-no-js'] );
    }
    return $actions;
}
add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );

Untuk mengubah tautan pratinjau, Anda dapat menggunakan filter 'preview_post_link', tetapi itu hanya berfungsi ketika posting belum dipublikasikan. Jadi, solusinya adalah dengan menghapus kotak meta kirim dan menambahkan Anda sendiri yang dimodifikasi:

function my_replace_submit_meta_box() {
    remove_meta_box('submitdiv', 'my-post-type', 'core');
    add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
}
add_action( 'admin_menu', 'my_replace_submit_meta_box' );

function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
    ...
}
sorich87
sumber
Terima kasih banyak. Telah mencari jawaban untuk ini sejak lama! Juga, apakah ada cara untuk mengubah ke mana tombol Pratinjau di kotak Publikasikan tautan? Saya ingin tautannya ke mysite.com/video?id='id of post 'atau buka lightbox dengan pemutar video
fxfuture
Hai lagi - sebenarnya saya tidak bisa mendapatkan salah satu dari bit kode yang Anda berikan untuk bekerja. Metabox permalink hanya menonaktifkan perubahan penyimpanan pada permalink daripada menyembunyikannya, dan saya tidak bisa menonaktifkan tautan Edit Cepat sama sekali. Ada ide?
fxfuture
Saya mengedit jawaban saya. Saya baru saja menguji iklan kode edit cepat kerjanya. Anda berbicara tentang tautan edit cepat di bawah nama pos di: wp-admin / edit.php? Post_type = sis_course, kan?
sorich87
Hebat, saya akan melihat info tambahan yang Anda posting. Saya dapat menyembunyikan pengeditan cepat dengan mengubah 'hierarkis' => salah dalam jenis kiriman khusus saya. Tampaknya tidak ada bedanya karena saya menggunakan plugin Post Types Order untuk memesannya. Terima kasih!
fxfuture
Mengganti kotak meta kirim berfungsi dengan baik! Sebenarnya ia harus menyertakan $ post di antara tanda kurung di fungsi Anda - yaitu custom_post_submit_meta_box ($ post). Jadi itu ketiganya disortir :) Ada sedikit lebih banyak penyesuaian yang ingin saya lakukan untuk kedua daftar posting dan mengedit layar posting - apakah Anda tahu panduan referensi yang merinci cara menghapus / mengganti semua elemen yang berbeda?
fxfuture