Yoasts SEOプラグインはポスト編集画面にメタボックスを追加します。私は編集者以上ではないユーザーのためにこれを削除しようとしています。
Admin_initにremove_meta_box
呼び出しを入れて$ wpseo_metaboxのアクションを削除しようとしましたが、役に立ちませんでした。
ユーザーの介入を必要とせずにこのメタボックスを削除するにはどうすればよいですか(ユーザーはメタボックスが存在することを決して知っているべきではないので、画面オプションをクリックすることはオプションではありません)
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 );
管理者以外のアカウントのメタボックスを削除します。
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;
}