La mejor manera de crear múltiples barras laterales
Sé perfectamente cómo crear múltiples barras laterales
. Pero creo que mi método no es la forma correcta de agregar múltiples barras laterales.
Así es como agrego múltiples barras laterales
Si simplemente quiero crear una barra lateral, uso el archivo sidebar.php. PERO si quiero usar otra barra lateral, tengo que crear otro archivo PHP como sidebar-new.php
. Luego llamo a este archivo así:
<?php
get_sidebar('new');
?>
¡Eso significa que si quiero crear 4 barras laterales, tengo que hacer 4 archivos PHP!
¡PERO he visto muchos temas (en el mercado de WordPress) que ofrecen muchas barras laterales pero contienen solo un archivo PHP para la barra lateral (sidebar.php)! ¿Cómo lo hacen? Aprendí sobre cómo hacer barras laterales en Google antes, pero en las búsquedas solo obtengo los resultados que estoy usando actualmente (crear múltiples archivos para múltiples barras laterales).
Entonces, ¿cómo puedo crear múltiples barras laterales sin hacer múltiples archivos PHP!!???

Definir una nueva barra lateral en tu archivo functions.php
<?php
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'before_widget' => '<li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>'
));
}?>
Una vez que estas funciones están definidas, notarás que aparece una barra lateral adicional en el Escritorio de WordPress bajo la opción Apariencia > Widgets. Es aquí donde puedes arrastrar y soltar todos tus widgets en tus diferentes barras laterales.
<?php
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'sidebar 1',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>'
));
register_sidebar(array(
'name' => 'footer sidebar 1',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>'
));
}?>
Añadir una nueva barra lateral a tu plantilla
Dentro de tu archivo sidebar.php, cambia la llamada a tu barra lateral existente para incluir el nombre que definiste previamente en el archivo functions.php.
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar 1') ) : ?>
<h2>Artículos por mes</h2>
<ul>
<?php wp_get_archives('title_li=&type=monthly'); ?>
</ul>
<h2>Categorías</h2>
<ul>
<?php wp_list_categories('show_count=0&title_li='); ?>
</ul>
<?php endif; ?>
Para añadir tu nueva barra lateral, puedes copiar el código anterior o simplemente copiar las siguientes líneas. Añade estas líneas donde quieras que aparezcan tus nuevos widgets. En este ejemplo, puedes ver por el nombre que estoy colocando la mía en el pie de página de mi sitio web. Como antes, no olvides especificar el nombre correcto de la barra lateral. En el código anterior, el HTML que aparece entre las sentencias PHP es lo que aparecerá cuando no haya widgets añadidos a tu barra lateral. Este código 'predeterminado' obviamente puede modificarse para adaptarse a tu tema. En el siguiente código, como no hay HTML adicional, no se mostrará nada a menos que se haya añadido un widget en la barra lateral dentro de tu Escritorio de WordPress.
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('footer sidebar 1') ) : ?>
<?php endif; ?>

¡Estoy un poco confundido aquí! Primero, ¿por qué no usaste id al registrar la barra lateral? ¿Y cómo llamo a la barra lateral en mi página de inicio? ¿Así? get_sidebar();
!

No se usa ID porque se llama a la barra lateral a través del área de widgets y puedes llamarla en la página de inicio simplemente usando el nombre del área de widgets en tu página de inicio.

Pero ¿por qué no puedo ver ninguna barra lateral (que acabo de registrar) en Apariencia -> Widgets?

¿Aplicaste el código anterior? Hay múltiples formas de agregar una barra lateral en tu archivo de tema.

El primer código lo escribí en functions.php y el segundo código lo escribí en functions.php (y luego también en home.php) y el último código lo escribí en sidebar.php. ¿Qué más necesito hacer y dónde?

¡Ese código no tiene efecto en el área de administración! ¿Has probado este método?

¡Una cosa más! Cuando puse el ID en la función del sidebar registrado, entonces empezó a aparecer en Apariencia -> Widgets

tienes que crear un sidebar y poner el nombre del sidebar en la función y luego llamarlo a través del área de widgets. Sí, he creado este código y lo he usado en mi proyecto.

¿Está claro cómo registrar una barra lateral en el widget y llamarla a través del área de widgets en tu página de inicio?

¿Debería llamarla usando get_sidebar(); o de otra manera? Si hay otra forma de llamarla, muéstrame

llamándola así y verifica el resultado <div class="third"> <?php if ( ! dynamic_sidebar('nombre de tu barra lateral')) : ?> <h2>Nombre de tu barra lateral</h2> <?php endif; ?> </div>

¡No, no, no! Parece que lo estás entendiendo todo mal... ¿Me estás sugiriendo que llame con esta función get_sidebar();
? Si es así, entonces llamará a ambas barras laterales al mismo tiempo. ¿Qué pasa si quisiera mostrar un widget en el pie de página y otro widget en el encabezado? Este caso no parece posible con tu código y esa era mi pregunta real.

Puedes diferenciar entre barras laterales dentro de sidebar.php
. No sé cuál es tu propósito, pero supongamos que deseas diferentes barras laterales en publicaciones/páginas individuales y otras páginas.
En tu functions.php
registrarías dos barras laterales con los IDs singular
y default
de la manera habitual con register_sidebar
.
Luego en sidebar.php
incluirías algo como:
if (is_singular) {dynamic_sidebar('singular');}
else {dynamic_sidebar('default');}
Por supuesto, hay muchas formas de variar esto. Puedes mostrar diferentes barras laterales dependiendo de la categoría o quizás ninguna barra lateral en una plantilla de página especial llamada 'una-columna'.

He probado tu solución y el resultado es como esperaba. ¡Solo muestra 1 barra lateral! Lo que realmente quería saber es una forma de agregar múltiples barras laterales en una página y en la ubicación de mi elección dentro de esa página.

¿Te refieres a que quieres múltiples llamadas a get_sidebar
desde index.php
para tener barras laterales en diferentes lugares?

Sí, porque si quiero mostrar 2 barras laterales diferentes, una en el pie de página y otra en cualquier otra ubicación, es decir, en el encabezado O ambas barras laterales en el pie de página en una sola página, ¿cómo lo haría?

Correcto. Esto significa que necesitas pasar un fragmento de información desde index.php
(el lugar de la llamada) a sidebar.php
. Este es un problema complicado con múltiples soluciones. Puedes leer más sobre esto aquí: http://wordpress.stackexchange.com/questions/228223/check-if-partial-file-is-called-from-within-header-php-or-footer-php?lq=1

Puedes crear múltiples barras laterales utilizando VC o el editor de WordPress mediante https://codecanyon.net/item/custom-sidebar-visual-editor-wordpress-plugin/17329853
