Hapus Metabox Post SEO Yoast [ditutup]

7

Plugin Yoasts SEO menambahkan kotak metabox ke layar edit posting. Saya mencoba menghapus ini untuk pengguna yang bukan editor atau di atas.

Saya sudah mencoba melakukan remove_meta_boxpanggilan di admin_init, mencoba menghapus tindakan di $ wpseo_metabox tetapi tidak berhasil.

Bagaimana cara menghapus metabox ini tanpa memerlukan intervensi pengguna (pengguna seharusnya tidak pernah tahu metabox ada, jadi mengklik opsi layar bukan pilihan)

Tom J Nowell
sumber
Berani saya bertanya mengapa Anda ingin menghapusnya? Apakah ada sesuatu yang secara khusus Anda tidak ingin mereka dapat lakukan?
Joost de Valk
2
Karena ada kelas pengguna yang tidak tahu apa itu SEO, hal-hal perlu disederhanakan untuk mereka (lebih tepatnya klien dengan uang tunai yang diminta itu). Seseorang dengan privasi tingkat editor akan memoderasi dan menyetujui posting, jadi lebih baik jika mereka melakukan bagian SEO daripada pengguna tingkat bawah yang menulis konten awal.
Tom J Nowell
Dan ini benar-benar harus komentar bukan jawaban, tidak ingin orang lain untuk downvote Anda
Tom J Nowell

Jawaban:

16

Hidup remove_meta_boxadalah catatan:

Karena Anda tidak dapat menghapus kotak meta sampai ditambahkan, penting untuk memastikan panggilan Anda ke delete_meta_box () terjadi dalam urutan yang benar.

SEO WordPress menambahkan kotak meta pada add_meta_boxestindakan dengan prioritas default - 10, yang dijalankan setelahnya admin_init, sehingga tidak akan menghapusnya. Alih-alih, Anda harus terhubung add_meta_boxes, tetapi dengan prioritas lebih rendah - 11, 12, dll.

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
sumber
2

Hapus metabox untuk akun non-admin:

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
sumber
Tidak berfungsi pada acara dari plugin kalender acara - namun ini berhasil untuk pos biasa. Saya tidak yakin apakah ini berfungsi pada jenis posting khusus.
Radmation