web-dev-qa-db-fra.com

Supprimer le Yoast SEO Post Metabox

Le plugin Yoasts SEO ajoute une metabox à l’écran de post-édition. J'essaie de supprimer cela pour les utilisateurs qui ne sont pas des éditeurs ou au-dessus.

J'ai essayé de mettre un appel remove_meta_box sur admin_init, en essayant de supprimer l'action sur $ wpseo_metabox mais en vain.

Comment puis-je supprimer cette metabox sans demander l'intervention de l'utilisateur (l'utilisateur ne doit jamais savoir que la metabox existait, aussi cliquer sur les options de l'écran n'est pas une option)

8
Tom J Nowell

Sur remove_meta_box est une note:

Comme vous ne pouvez pas supprimer une méta-boîte tant qu'elle n'a pas été ajoutée, il est important de vous assurer que l'appel à remove_meta_box () se déroule dans le bon ordre.

WordPress SEO ajoute des méta-boîtes à l'action add_meta_boxes avec la priorité par défaut - 10, qui s'exécutent après le admin_init, pour ne pas les supprimer. Au lieu de cela, vous devez vous connecter à add_meta_boxes, mais avec une priorité plus faible - 11, 12, etc.

function mamaduka_remove_metabox() {
    if ( ! current_user_can( 'edit_others_posts' ) )
        remove_meta_box( 'wpseo_meta', 'post', 'normal' );
}
add_action( 'add_meta_boxes', 'mamaduka_remove_metabox', 11 );
16
Mamaduka

Supprimez les métaboxes pour les comptes non-administrateurs:

add_filter ( 'manage_edit-post_columns', 'rkv_remove_columns' );
function rkv_remove_columns( $columns ) {

   if ( ! current_user_can('administrator') ) { 

    unset( $columns['wpseo-score'] );
    unset( $columns['wpseo-title'] );
    unset( $columns['wpseo-metadesc'] );
    unset( $columns['wpseo-focuskw'] );
}
    return $columns;
}
2
Amsbundem