Supprimer le Yoast SEO Post Metabox [fermé]

7

Le plugin Yoasts SEO ajoute une métabox à l'écran de post-édition. J'essaie de supprimer cela pour les utilisateurs qui ne sont pas éditeurs ou supérieurs.

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

Comment supprimer cette métabox sans nécessiter l'intervention de l'utilisateur (l'utilisateur ne doit jamais savoir que la metabox existait, donc cliquer sur les options d'écran n'est pas une option)

Tom J Nowell
la source
Oserais-je demander pourquoi vous voulez le supprimer? Y a-t-il quelque chose en particulier que vous ne voulez pas qu'ils puissent faire?
Joost de Valk
2
Parce qu'il y a une classe d'utilisateurs qui n'a aucune idée de ce qu'est le SEO, les choses doivent être simplifiées pour eux (plus au point que le client avec l'argent le lui a demandé). Quelqu'un avec des privilèges d'éditeur modérera et approuvera le post de toute façon, il est donc préférable qu'ils fassent la partie SEO plutôt que les utilisateurs de niveau inférieur écrivant le contenu initial.
Tom J Nowell
Et cela devrait vraiment être un commentaire et non une réponse, je ne voudrais pas que d'autres personnes vous dévalorisent
Tom J Nowell

Réponses:

16

Sur remove_meta_boxest 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 votre appel à remove_meta_box () se déroule dans le bon ordre.

WordPress SEO ajoute des méta-boîtes sur l' add_meta_boxesaction avec la priorité par défaut - 10, qui s'exécutent après admin_init, afin que cela ne les supprime pas. Au lieu de cela, vous devez vous connecter add_meta_boxes, mais avec une priorité inférieure - 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 );
Mamaduka
la source
2

Supprimez les métabox 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;
}
Amsbundem
la source
Ne fonctionne pas sur les événements d'un plugin de calendrier d'événements - cela a fonctionné cependant pour les publications régulières. Je ne sais pas si cela fonctionne sur les types de publication personnalisés.
Radmation