it-swarm.com.de

Entfernen Sie die Yoast SEO Post Metabox

Das SEO-Plugin von Yoasts fügt dem Post-Edit-Bildschirm eine Metabox hinzu. Ich versuche, dies für Benutzer zu entfernen, die keine Redakteure oder höher sind.

Ich habe versucht, einen remove_meta_box-Aufruf an admin_init zu senden, und versucht, die Aktion an $ wpseo_metabox zu entfernen, aber ohne Erfolg.

Wie entferne ich diese Metabox, ohne dass ein Benutzereingriff erforderlich ist? (Der Benutzer sollte nie wissen, dass die Metabox vorhanden ist. Das Klicken auf Bildschirmoptionen ist daher keine Option.)

8
Tom J Nowell

Am remove_meta_box steht ein Hinweis:

Da Sie eine Meta-Box erst entfernen können, wenn sie hinzugefügt wurde, müssen Sie sicherstellen, dass der Aufruf von remove_meta_box () in der richtigen Reihenfolge erfolgt.

WordPress SEO fügt Meta-Boxen zu add_meta_boxes-Aktionen mit der Standardpriorität 10 hinzu, die nach admin_init ausgeführt werden, damit sie nicht entfernt werden. Stattdessen müssen Sie sich in add_meta_boxes einbinden, jedoch mit niedrigerer Priorität - 11, 12 usw.

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

Entfernen Sie Metaboxen für Nicht-Administratorkonten:

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