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

wordpress.stackexchange https://wordpress.stackexchange.com/questions/2279

  •  16-10-2019
  •  | 
  •  

Question

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

Je l'ai personnalisé dans une mesure déjà sur la création du type de poste personnalisé - ajoutant des champs supplémentaires, etc., mais je veux supprimer de nombreux éléments tels que des permaliens, un message d'aperçu, désactiver l'édition rapide, etc.

Était-ce utile?

La solution

Certaines de ces questions sont répondues ici: Définir les options d'écran d'administration par défaut et l'ordre Metabox

Pour supprimer le métabox du permalien:

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

En plus, vous devrez masquer # Edit-Slug-box avec CSS ou JavaScript. voir: Chargement des scripts externes dans l'administrateur mais uniquement pour un type de poste spécifique?

Pour désactiver le montage 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 d'aperçu, vous pouvez utiliser le filtre 'Preview_Post_Link', mais il ne fonctionne que lorsque le message n'a pas encore été publié. Ainsi, la solution serait de supprimer la méta-boîte de soumission et d'ajouter votre propre modification:

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)
    ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top