web-dev-qa-db-ja.com

Yoast SEO Post Metaboxを削除します。

Yoasts SEOプラグインはポスト編集画面にメタボックスを追加します。私は編集者以上ではないユーザーのためにこれを削除しようとしています。

Admin_initにremove_meta_box呼び出しを入れて$ wpseo_metaboxのアクションを削除しようとしましたが、役に立ちませんでした。

ユーザーの介入を必要とせずにこのメタボックスを削除するにはどうすればよいですか(ユーザーはメタボックスが存在することを決して知っているべきではないので、画面オプションをクリックすることはオプションではありません)

8
Tom J Nowell

remove_meta_box はメモです。

追加されるまでメタボックスを削除することはできないため、remove_meta_box()の呼び出しが正しい順序で行われるようにすることが重要です。

WordPress SEOはデフォルトの優先度 - 10でadd_meta_boxesアクションにメタボックスを追加します。これはadmin_initの後に実行されるので削除されません。代わりにadd_meta_boxesにフックする必要がありますが、優先度は低くなります - 11、12など。

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

管理者以外のアカウントのメタボックスを削除します。

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