Ya sea porque nuestro theme no tenga, o que las zonas existentes no cumplan nuestras necesidades, podemos vernos en el caso de querer añadir una nueva zona de Widgets a nuestra web. Lo interesante de crear una zona de Widgets es que esta aparezca en el apartado de Apariencia > Widgets de nuestro Worpdress para así poder añadirlos de forma rápida y cómoda. En este post vamos a ver como hacerlo paso a paso.
#Añadiendo una zona de Widgets
Lo primero que tenemos que hacer es dirigirnos a Apariencia > Editor > functions.php de nuestro theme y comprobar si existe el siguiente código:
register_sidebar( array( 'name' => __( 'Nueva Zona de Widgets' ), 'id' => 'sidebar-footer', 'description' => __( 'Widget personalizado' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) );
En el caso de aparecer register_sidebar, significa que el theme ya tiene alguna zona de widgets creada, por lo cuál, para añadir una nueva tendremos que copiar el código anterior justo a continuación en el archivo quedando algo así:

En caso de no existir esa función, tendríamos que copiar este código:
function nueva_zona() {
register_sidebar( array(
'name' => 'Nueva Zona de Widgets',
'id' => 'idNuevaZona',
'description' => 'Descripción',
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'nueva_zona' );
Realizado correctamente el paso anterior, tendríamos una zona nueva de Widgets creada en nuestro WordPress. Podemos acceder a ella e incluir los widgets necesarios dirigiéndonos a Apariencia > Widgets

Ahora es el momento de indicar en el theme que estemos usando donde va a aparecer esta nueva zona de Widgets que acabamos de crear. Para ello, vamos al archivo de la plantilla encargada de generar la nueva zona y pegamos el siguiente código. Un ejemplo sería footer.php en el caso de que queramos que aparezca en el footer, single.php si queremos que aparezca en los post individuales, etc…
<?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Nueva Zona de Widgets')) : ?>
<?php endif; ?>
Con estos pasos ya hemos añadido una zona nueva de Widgets a nuestro theme y la estaremos mostrando. Como es evidente, debemos ubicar este último código en un lugar adecuado para que se muestre correctamente, por ejemplo dentro de una etiqueta Div y ayudándonos también de CSS para personalizarlo a nuestro gusto y necesidades.