Comment cacher tout dans la metabox PUBLISH sauf le bouton Move to Trash & PUBLISH

10

J'ai un type de publication personnalisé (appelé contacts). Ce type de message ne fonctionnant pas comme un message, je ne souhaite pas afficher SAVE DRAFT, PREVIEW, Statut, Visibilité ou Date de publication.

Les seules options que je souhaite afficher sont PUBLISH & Boutons Déplacer vers la Corbeille.

Existe-t-il un moyen de masquer ces autres options? Sinon, comment créer un nouveau PUBLISH & Déplacer vers la corbeille que je peux ajouter à une nouvelle métabox?

    
posée katemerart 11.12.2011 - 03:28

2 réponses

13

Vous pouvez simplement masquer les options en utilisant CSS. Cela ajoutera un style display: none aux actions de publication diverses et mineures des pages post.php et post-new.php. Il recherche également un type de publication spécifique, car tous les types de publication utilisent ces deux fichiers.

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');
    
réponse donnée Brian Fegter 11.12.2011 - 03:57
1

Dans cet exemple, vous pouvez facilement définir les types d'articles que vous souhaitez masquer pour les options de publication. Cet exemple les masque pour le type de pots intégré, type page et pour le type d'article personnalisé cpt_portfolio .

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

Mise à jour importante

Je vous suggère également de forcer le statut de publication "Publié" pour éviter de sauvegarder les publications en tant que brouillons:

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
    
réponse donnée Nabil Kadimi 01.06.2014 - 00:33

Lire d'autres questions sur les étiquettes