Не удалось удалить мета-поле из пользовательского сообщения для всех пользователей, не являющихся администраторами

Я не могу удалить мета-окно плагина из пользовательского сообщения для всех пользователей, не являющихся пользователями. Вот функция плагина:

function PreparePostPageOptions() { global $WishListMemberInstance; $post_types = array('post', 'page', 'attachment') + get_post_types(array('_builtin' => false)); foreach ($post_types AS $post_type) { if ($post_type == 'attachment') add_meta_box('wlm_attachment_metabox', __('WishList Member', 'wishlist-member'), array(&$WishListMemberInstance, 'AttachmentOptions'), $post_type); else add_meta_box('wlm_postpage_metabox', __('WishList Member', 'wishlist-member'), array(&$WishListMemberInstance, 'PostPageOptions'), $post_type); } } 

Это код, который я использую для удаления:

  if (is_admin()) : function remove_wlm_metaboxes(){ if ( ! current_user_can( 'administrator' ) ) { remove_meta_box( 'wlm_postpage_metabox', 'post', 'normal' ); } } add_action( 'admin_menu', 'remove_wlm_metaboxes', 9999 ); endif; 

Почему вы добавляете метабокс для пользователей, не являющихся администраторами, на первой странице? Попробуй это:

 function PreparePostPageOptions() { if( !current_user_can('administrator') ) // add meta boxes only for admin return; global $WishListMemberInstance; $post_types = array('post', 'page', 'attachment') + get_post_types(array('_builtin' => false)); foreach ($post_types AS $post_type) { if ($post_type == 'attachment') add_meta_box('wlm_attachment_metabox', __('WishList Member', 'wishlist-member'), array(&$WishListMemberInstance, 'AttachmentOptions'), $post_type); else add_meta_box('wlm_postpage_metabox', __('WishList Member', 'wishlist-member'), array(&$WishListMemberInstance, 'PostPageOptions'), $post_type); } } 

Если вам интересно, почему ваш код не работает. Вы добавляете функцию на неправильный крючок. Вы можете попробовать:

 add_action( 'add_meta_boxes', 'remove_wlm_metaboxes', 9999 );