You have to use $_REQUEST
instead of $_GET
, because when an user saves a post the POST
request will be send to the server. It means that there is no $_GET['post']
argument and your meta boxes won’t be registered. And if they are not registered, then nothing will be saved.
// Only shows for the admin front-page assigned page.
$front_page_id = get_option( 'page_on_front' );
$post_id = (empty($_REQUEST['post'])) ? NULL : $_REQUEST['post'];
if (is_admin() && $front_page_id == $post_id) {
........
}