Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Error al mostrar submenu si estoy en categoria padre o hija

Estas en el tema de Error al mostrar submenu si estoy en categoria padre o hija en el foro de WordPress en Foros del Web. Hola, Estoy utilizando condicionales if para mostrar un submenu u otro dependiendo de si estoy en la home, en una categoria en concreto... Ahora pues, ...
  #1 (permalink)  
Antiguo 06/06/2009, 17:18
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 23 años
Puntos: 0
Error al mostrar submenu si estoy en categoria padre o hija

Hola,

Estoy utilizando condicionales if para mostrar un submenu u otro dependiendo de si estoy en la home, en una categoria en concreto...

Ahora pues, tengo una categoria padre "Portfolio" que contiene varias subcategorias hijas con distintas disciplinas "dibujo", "pintura", "acuarela"... deseo que cuando me encuentre en la categoria padre (Portfolio) o en una de sus hijas, se muestre un menu con las subcategorias hijas...

he probado lo siguiente:

Código PHP:
$subcategorias_portfolio get_categories('child_of=3');

for (
$n 0$n count ($subcategorias_portfolio); $n++){
    
$cada_subcategoria_portfolio each ($subcategorias_portfolio);
    if (
is_category($cada_subcategoria_portfolio)) {
        
wp_list_categories('title_li=&orderby=id&show_count=0&use_desc_for_title=0&child_of=3');
    };
}; 
Que explicado a grosomodo: es que recoge el array de las categorias hijas de la categoria padre (la número 3).
Mediante un bucle for voy comprobando si estoy en alguna de las categorias hijas de esta categoria padre (3)... si es así, mostraré el listado de categorias.

El resultado que me ofrece este codigo, es...
- Si me encuentro en la categoria padre: se imprime dos veces el menú de subcategorias, osea, mal.
- Si me encuentro en alguna de sus subcategorias muestra correctamente el menu (sin repeticiones), osea, estupendo!.

Como puedo solventar este error?

Muchas gracias.
  #2 (permalink)  
Antiguo 06/06/2009, 18:06
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: Error al mostrar submenu si estoy en categoria padre o hija

Recuerda que wp_list_categories no sólo es un array sino un array con un bucle implementado. Por eso es que cuando lo encierras en un for se te repite hasta la médula (Por supuesto puedes construir el bucle que desees, pero debes trabajar con consultas directas a la BD).

Existe una función en wp_list_categories que te sacará del problema: 'depth='. Defínela en tu lista de propiedades y tendrás lo que necesitas:

Código php:
Ver original
  1. <?php wp_list_categories('child_of=3&depth=4'); ?>
Puedes aumentar ese valor según cuánto quieres controlar que el query penetre en los niveles de categorías.
  #3 (permalink)  
Antiguo 07/06/2009, 10:01
 
Fecha de Ingreso: diciembre-2001
Mensajes: 118
Antigüedad: 23 años
Puntos: 0
Respuesta: Error al mostrar submenu si estoy en categoria padre o hija

Muchas gracias... pero encontré otra solución.. alla va

Código PHP:
if (!function_exists('is_category_or_sub')) {
    function 
is_category_or_sub($cat_id 0) {
        foreach (
get_the_category() as $cat) {
            if (
$cat_id == $cat->cat_ID || cat_is_ancestor_of($cat_id$cat)) return true;
        }
        return 
false;
    }
}
if (
is_category_or_sub(aqui_pongo_el_numero_de_la_categoria_padre)) { 
    
wp_list_categories('title_li=&orderby=id&show_count=0&use_desc_for_title=0&child_of=aqui_pongo_el_numero_de_la_categoria_padre');

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:08.