Personnaliser l'écran Modifier la publication pour les types de publication personnalisés?

15

Quelle est la meilleure façon de personnaliser complètement l'écran d'administration Modifier la publication pour un type de publication personnalisé spécifique?

Je l'ai déjà personnalisé dans une certaine mesure lors de la création du type de publication personnalisé - en ajoutant des champs supplémentaires, etc., mais je souhaite supprimer de nombreux éléments tels que les permaliens, la prévisualisation de la publication, désactiver la modification rapide, etc.

fxfuture
la source

Réponses:

16

On répond à certaines de ces questions ici: Définir les options de l'écran d'administration par défaut et l'ordre des métabox

Pour supprimer la métabox de permalien:

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

en outre, vous devrez masquer # edit-slug-box avec css ou javascript. voir: Chargement de scripts externes dans Admin mais UNIQUEMENT pour un type de publication spécifique?

Pour désactiver la modification rapide:

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

Pour modifier le lien de prévisualisation, vous pouvez utiliser le filtre 'preview_post_link', mais cela ne fonctionne que lorsque la publication n'a pas encore été publiée. Ainsi, la solution serait de supprimer la méta-boîte d'envoi et d'ajouter la vôtre modifiée:

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
la source
Merci beaucoup. Vous cherchez la réponse à cela depuis des lustres! De plus, existe-t-il un moyen de modifier l'emplacement du lien du bouton Aperçu dans la zone Publier? Je voudrais qu'il mette un lien vers mysite.com/video?id='id of post 'ou ouvre une lightbox avec un lecteur vidéo
fxfuture
Salut encore une fois - en fait, je ne peux pas faire fonctionner ces morceaux de code que vous avez fournis. La métabox de permalien désactive simplement l'enregistrement des modifications apportées au permalien plutôt que de le masquer, et je ne peux pas du tout désactiver le lien Édition rapide. Des idées?
fxfuture
J'ai édité ma réponse. Je viens de tester l'annonce de code à modification rapide qui fonctionne. Vous parlez du lien de modification rapide sous le nom du message sur: wp-admin / edit.php? Post_type = sis_course, non?
sorich87
Très bien, je vais jeter un œil aux informations supplémentaires que vous avez publiées. J'ai pu masquer la modification rapide en changeant 'hierarchical' => false dans mon type de message personnalisé. Cela ne semble pas faire de différence car j'utilise le plugin Post Types Order pour le commander de toute façon. Merci!
fxfuture
Le remplacement de la méta-boîte de soumission a parfaitement fonctionné! Il devait en fait inclure $ post entre les crochets de votre fonction - c'est-à-dire custom_post_submit_meta_box ($ post). C'est donc tous les trois triés :) Il y a un peu plus de personnalisation que je veux faire à la fois sur la liste des articles et sur l'écran d'édition des articles - connaissez-vous un guide de référence qui détaille comment supprimer / remplacer tous les différents éléments?
fxfuture