Primero tenemos que conseguir un listado de las ID de las categorias que tenemos en la base de datos (esto lo hacemos entrando al menu Categorias y pasando el mouse sobre cada una de ellas, y vamos a ver en la barra de estado una url que finaliza con
&tag_ID=y el numero que le sigue es el ID que buscamos.
Por cada una de las categorias que queramos con sidebars propios, tenemos que crear un archivo sidebar-$ID.php en la carpeta del tema que tengamos activado actualmente. ( para la categoria 3 seria el archivo sidebar-3.php ).
Por ultimo cada archivo debe tener el siguiente contenido:
<?php if ( function_exists ( dynamic_sidebar($ID) ) ) : ?> // Contenido HTML <?php dynamic_sidebar ($ID); ?> // Mas Contenido HTML <?php endif; ?>Nota: Otra vez reemplazando los $ID con el numero del id de la categoria, por ejemplo: 3
Segundo Paso:
En el archivo functions.php tenemos que incluir la siguiente funcion:
function obtenerIDCategoria()
{
$categoria = get_the_category();
return $categoria[0]->cat_ID;
}Luego insertamos el siguiente codigo:
if(function_exists('register_sidebar')){
foreach(get_categories() as $categoria){
register_sidebar(array(
'name' => $categoria->name,
'id' => 'sidebar-'.$categoria->cat_ID
));
}
}
Este codigo recorre todas las categorias creadas y las registra con su nombre e id para que sean mostradas en el menu Widgets.Bueno ya tenemos creados los archivos donde se van a renderizar los sidebars y tambien los tenemos registrados en el wordpress para enlazar el sistema de wordpress con nuestros sidebars "customizados".
Ahora falta indicar a wordpress en que archivos queremos que se muestren los sidebars (archive.php, site.php, category.php, etc)
Ultimo Paso:
Yo unicamente modifique el archivo category.php pero pueden cambiar el que quieran. El codigo que hace falta para mostrar el sidebar de la categoria en la que estamos parados actualmente es:
get_sidebar( obtenerIDCategoria() );
Simplemente se esta mostrando el sidebar con el id obtenido con esa funcion, que devuelve el id de la categoria sobre la que estamos navegando.
A continuacion les dejo links a la referencia de las funciones que usamos.
register_sidebar
get_sidebar
Bueno eso es todo cualquier duda comenten!
No hay comentarios:
Publicar un comentario