web-dev-qa-db-fra.com

Comment supprimer "publier metabox" de chaque type de message

Existe-t-il un moyen de supprimer "Publish metabox" de chaque type de message (post, page, custom_post_type)?.

Je sais comment le supprimer manuellement, pour chaque type de message, mais comment le faire globalement?

remove_metabox(...)
1
Jakub Kohout

Si vous connaissez les outils de développement de navigateur, vous pouvez rapidement trouver l'ID de la metabox (qui est l'ID de conteneur). Dans ce cas, cela s'appelle submitdiv. Nous pouvons le supprimer en utilisant la fonction remove_meta_box() qui a un format comme celui-ci:

remove_meta_box( 'metabox_id', 'post_type', 'default_position' );
remove_meta_box( 'submitdiv',  'post',      'side'             );

Voici une liste des identifiants Metabox par défaut . Si nous voulons supprimer une certaine métabox de tous les types de publication , nous devons d’abord obtenir tous les types de publication à l’aide de la fonction get_post_types() qui renvoie un tableau. . Ensuite, nous pouvons parcourir et supprimer la metabox en passant le post_type dans notre fonction remove_meta_box().

/**
 * Hide Metaboxes For All Post Types
 */
function hide_publish_metabox() {
    $post_types = get_post_types( '', 'names' );

    if( ! empty( $post_types ) ) {
        foreach( $post_types as $type ) {
            remove_meta_box( 'submitdiv', $type, 'side' );
        }
    }
}
add_action( 'do_meta_boxes', 'hide_publish_metabox' );
2
Howdy_McGee