Вообще выводиться это с помощью функции get_post_meta($postID, 'meta_box_id', true);
Но в вашем коде нет обработчика сохранения данных.
Вам нужно не только отобразить виджет в админке, но и по событию save_post сохранить то что вы в него положили.
Пример кода
function fgb_fs_gallery_id_callback( $post, $meta ){
$screens = $meta['args'];
// Используем nonce для верификации
wp_nonce_field( plugin_basename(__FILE__), 'fgb_fsg_id_noncename' );
// Поля формы для введения данных
echo '<label for="fgb_fsg_id">' . __("Put gallery id", 'fgb' ) . '</label> ';
echo '<input type="text" id= "fgb_fsg_id" name="fgb_fsg_id" size="2" value="'. get_post_meta( $post->ID, '_fgb_fsg_id',true ) .'"/>';
}
// Сохраняем данные, когда пост сохраняется
add_action( 'save_post', 'fgb_fsg_id_save_postdata' );
function fgb_fsg_id_save_postdata( $post_id ) {
// Убедимся что поле установлено.
if ( ! isset( $_POST['fgb_fsg_id'] ) )
return;
// проверяем nonce нашей страницы, потому что save_post может быть вызван с другого места.
if ( ! wp_verify_nonce( $_POST['fgb_fsg_id_noncename'], plugin_basename(__FILE__) ) )
return;
// если это автосохранение ничего не делаем
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return;
// проверяем права юзера
if( ! current_user_can( 'edit_post', $post_id ) )
return;
// Все ОК. Теперь, нужно найти и сохранить данные
// Очищаем значение поля input.
$my_data = sanitize_text_field( $_POST['fgb_fsg_id'] );
// Обновляем данные в базе данных.
update_post_meta( $post_id, '_fgb_fsg_id', $my_data );
}
Я недавно реализовывал галерею на wordpress, возможно вы делаете что-то похожее. Посмотрите
здесь