Theme Setup
El Theme Setup es la función de configuración del tema que se ejecuta dentro del hook after_setup_theme. Es el lugar correcto para declarar qué características soporta el tema y registrar sus recursos.
¿Por qué after_setup_theme y no init?
after_setup_theme se dispara antes que init, justo después de que el tema se ha cargado. Algunas funciones como register_nav_menus() o add_theme_support() necesitan ejecutarse en este punto temprano.
add_action( 'after_setup_theme', 'mi_tema_setup' );
function mi_tema_setup() {
// WordPress gestiona el <title> automáticamente
add_theme_support( 'title-tag' );
// Activa las imágenes destacadas en posts
add_theme_support( 'post-thumbnails' );
// HTML5 semántico para galerías, formularios, etc.
add_theme_support( 'html5', [
'search-form',
'comment-form',
'gallery',
'caption',
'style',
'script',
]);
// Soporte para logo personalizado desde el Customizer
add_theme_support( 'custom-logo', [
'height' => 80,
'width' => 200,
'flex-height' => true,
'flex-width' => true,
]);
// Soporte para color de fondo personalizable
add_theme_support( 'custom-background' );
// Registra las zonas de menú
register_nav_menus([
'primary' => __( 'Menú principal', 'mi-tema' ),
'footer' => __( 'Menú footer', 'mi-tema' ),
]);
// Carga el dominio de traducción del tema
load_theme_textdomain( 'mi-tema', get_template_directory() . '/languages' );
}
Otras características comunes
// Soporte para bloques de Gutenberg en ancho completo
add_theme_support( 'align-wide' );
// Paleta de colores en el editor de bloques
add_theme_support( 'editor-color-palette', [
[ 'name' => 'Primario', 'slug' => 'primario', 'color' => '#336699' ],
[ 'name' => 'Secundario', 'slug' => 'secundario', 'color' => '#ff5733' ],
]);
// Tamaños de fuente en el editor
add_theme_support( 'editor-font-sizes', [
[ 'name' => 'Pequeño', 'slug' => 'small', 'size' => 14 ],
[ 'name' => 'Normal', 'slug' => 'normal', 'size' => 16 ],
[ 'name' => 'Grande', 'slug' => 'large', 'size' => 24 ],
]);
