You can implement meta boxes on other non-post_type admin pages but you need to manually call [`do_meta_boxes()`][1] where you want them to output. You also need to make sure that [`add_meta_box()`][2] action is run prior. You can see an example of this in **/wp-admin/edit-form-comment.php**... do_action( 'add_meta_boxes', 'comment', $comment ); do_action( 'add_meta_boxes_comment', $comment ); do_meta_boxes( null, 'normal', $comment ); They ran two [`do_actions()`][3] but you can just use one if needed and it can be something custom like `do_action( 'add_meta_boxes_banner', $someArgumentIfNeeded )`. Basically, with your current code the [`add_meta_box`][4] action is never being triggered because the custom page doesn't run a `do_action()` for it. [1]: https://developer.wordpress.org/reference/functions/do_meta_boxes/ [2]: https://developer.wordpress.org/reference/functions/add_meta_box/ [3]: https://developer.wordpress.org/reference/functions/do_action/ [4]: https://developer.wordpress.org/reference/hooks/add_meta_boxes/