Personalizza la schermata Modifica post per i tipi di post personalizzati?


15

Qual è il modo migliore per personalizzare completamente la schermata di amministrazione Modifica post per uno specifico tipo di post personalizzato?

L'ho personalizzato in misura già al momento della creazione del tipo di post personalizzato - aggiungendo campi aggiuntivi ecc., Ma desidero rimuovere molti elementi come permalink, anteprime post, disabilitare la modifica rapida ecc.

Risposte:


16

Ad alcune di queste domande viene fornita una risposta qui: Imposta le opzioni della schermata di amministrazione predefinita e l'ordine Metabox

Per rimuovere il metabox permalink:

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

inoltre, dovrai nascondere # edit-slug-box con css o javascript. vedi: Caricamento di script esterni nell'amministratore ma SOLO per un tipo di post specifico?

Per disabilitare la modifica rapida:

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 );

Per modificare il link di anteprima, è possibile utilizzare il filtro "preview_post_link", ma funziona solo quando il post non è stato ancora pubblicato. Quindi, la soluzione sarebbe quella di rimuovere la meta box di invio e aggiungerne una modificata:

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)
    ...
}

Grazie mille. Ho cercato la risposta a questa domanda per anni! Inoltre, c'è un modo per cambiare dove si collega il pulsante Anteprima nella casella Pubblica? Mi piacerebbe collegarmi a mysite.com/video?id='id of post 'o aprire una lightbox con un lettore video
fxfuture,

Ciao di nuovo - in realtà non riesco a far funzionare nessuno dei bit di codice che hai fornito. Il metabox del permalink disabilita semplicemente il salvataggio delle modifiche al permalink piuttosto che nasconderlo, e non riesco affatto a disabilitare il collegamento Modifica rapida. Qualche idea?
fxfuture,

Ho modificato la mia risposta. Ho appena testato l'annuncio con codice di modifica rapida che funziona. Stai parlando del link di modifica rapida sotto il nome del post su: wp-admin / edit.php? Post_type = sis_course, giusto?
sorich87,

Fantastico, darò un'occhiata alle informazioni aggiuntive che hai pubblicato. Sono stato in grado di nascondere la modifica rapida cambiando 'hierarchical' => false nel mio tipo di post personalizzato. Non sembra fare la differenza poiché sto usando il plug-in Ordine tipi di posta per ordinarlo comunque. Grazie!
fxfuture,

La sostituzione della meta box di invio ha funzionato perfettamente! In realtà ha dovuto includere $ post tra le parentesi nella tua funzione, ad esempio custom_post_submit_meta_box ($ post). Quindi sono tutti e tre ordinati :) C'è un po 'più di personalizzazione che voglio fare sia per i post dell'elenco che per la schermata di modifica dei post: conosci una guida di riferimento che spiega come rimuovere / sostituire tutti i diversi elementi?
fxfuture,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.