Creo que es tan simple como que estás llamando una función que no existe en el tercer parámetro de la función
add_setting_field(). Verifica a ver...
Código PHP:
Ver originaladd_settings_field( 'buttons', 'Opciones botones sociales', 'buttons_options', 'theme-options', 'general' );
También te falta una función para validar los datos en
register_setting().
Luego iremos por parte, pues tengo un código para eso, pero te dejo pasar un poquito de trabajo y luego lo vamos solucionando paso a paso. Es la mejor manera de aprender...
Este es un tema realmente difícil en WordPress, por eso me esforzaré al máximo en ayudarte.
Saludos.