Menu dinamico en base a categorias

Inicio Foros WordPress General WordPress.org Menu dinamico en base a categorias

Etiquetado: ,

Este debate contiene 11 respuestas, tiene 4 mensajes y lo actualizó  metacortex hace 8 años, 10 meses.

  • Autor
    Publicaciones
  • #14276

    <p>Mi ‘novatez’ en estos temas no me ha dejado encontrar una buena solución al siguiente episodio, espero encontrar alguien que me pueda ayudar y enseñar a hacer lo siguiente, que creo debe ser muy común en wordpress.</p>
    <p>Nota: no se si busque bien pero no encontre nada que me ayudara en el foro, ni tampoco en la pagina Ayuda WordPress. :cry:</p>
    <p>El tema es el siguiente:</p>
    <p>Supongan que existe una categoria padre llamada PRODUCTOS y dos categorias dentro de esta PROD1 y PROD2 , que a su vez tienen subcategorias de productos subPROD1 y subPROD2</p>
    <p>me interesa hacer un menu que muestre la categoria Padre y 1 nivel de hijos osea PRODUCTOS y PROD1 y PROD2 o<br />
    PROD2 y subPROD2_a subPROD2_b ,etc</p>
    <p>el tema es que no se como hacer para hacer para informar, usando wp_list_categories() y child_of, pasar la categoria padre</p>
    <p>Espero haber sido claro y seguramente sea facil de lograr</p>
    <p>Grracias desde ya , como siempre
    </p>

  • #31899

    23r9i0
    Participante

    Hola para hacer lo que dices solo tienes que añadir [code]&depth=x[/code] donde x es el nivel de subpaginas.
    Mas info:
    [url=http://codex.wordpress.org/Template_Tags/wp_list_categories]http://codex.wordpress.org/Template_Tags/wp_list_categories[/url]

  • #31900

    gracias por la pronta respuesta, pero el problema es que eso mantiene simpre la misma lista sin importar donde estas, por ejemplo si pongo depth=1 si estoy en PRODUCTOS me muestra hasta PROD1 y PROD2 Hasta ahí todo bien, pero si doy click en PROD2, las categorias que muestran siguen iguales y yo quiero que muestre PROD2 y sus subPROD´s

    Me explico? si no esta claro intentare plantearlo de otra forma

    PRODUCTOS>>NOTEBOOKS
    >>PCS (si doy click en PCS, quiero que vaya a la pagina de la categoria pc y que el menu
    cambie a:

    PCS>>AMD
    >>INTEL

    quedo más claro??
    por ejmplo child_of PCS pero no se como decirle a wordpress cual es la categoria que estamos actualmente.
    Si estoy equivocado y si se logra hacer lo que quiero con depth solo me lo dicen que me dare la cabeza contra la pared hasta que me salga !! 🙂

    Gracias de nuevo Sergio

  • #31901

    23r9i0
    Participante

    Hostia!!
    No te puedo ayudar ya que lo que pides, que yo sepa no se puede hacer directamente desde wp_list_categories, ya que por lo que se solo muestra tus paginas desde la raiz y no cambia segun donde este.
    Supongo que con un poco de php se podria hacer!!

  • #31908

    Bueno si yo supiera como pasarle la categoria que se esta viendo actualmente podriamos poner
    wp_list_categories(‘child_of=xxx’) lo cual haria que mostrara solo las ccategorias hijo debajo de la categoria que ponemos

    Se puede hacer que cada categoria tenga su category-xxx.php y alli poner a mano la opcion child-of, ya que conocemos de antemano las categoria a mostrar, pero esto limitaria a los clientes para crear una nueva categoria, ta que no va a poder crear una pagina .php y modificar esto, no?

    Debe de haber alguna forma de saber la categia actual, pasarla a una variable por ejemplo $categoria_actual y luego aplicarlo a wp_list_categories(‘child_of=’.$categoria_actual)

    Que les parece la idea?

    Espero propuestas o críticas

    Saludos

  • #31932

    metacortex
    Participante

    [quote]Se puede hacer que cada categoria tenga su category-xxx.php y alli poner a mano la opcion child-of, ya que conocemos de antemano las categoria a mostrar, pero esto limitaria a los clientes para crear una nueva categoria, ta que no va a poder crear una pagina .php y modificar esto, no?[/quote]

    Eso es una locura. Ojalá tu cliente no lea eso porque te guinda de las que te conté.

    Usa get_query_var() y un loop para obtener el valor que solicitas en la variable:

    [code]<?php
    $esto = get_query_var(‘cat’);
    foreach((get_the_category()) as $categoria) {
    if($categoria->cat_ID == $esto)
    $categoria_actual = $categoria->cat_ID;
    }
    ?>[/code]

    Eso te dará el ID de la categoría en la que te encuentres en ese momento.

  • #31941

    imported_Sabogal
    Participante

    ¿Y no sería más fácil conseguir un theme que ya tenga implementado ese sistema?

    Todos los themes de studiopress lo tienen.

    Saludos!

  • #31942

    metacortex
    Participante

    No. Resulta más fácil aprender cómo hacerlo e implementarlo exitosamente en donde desees.

  • #31965

    [quote]Se puede hacer que cada categoria tenga su category-xxx.php y alli poner a mano la opcion child-of, ya que conocemos de antemano las categoria a mostrar, pero esto limitaria a los clientes para crear una nueva categoria, ta que no va a poder crear una pagina .php y modificar esto, no?[/quote]
    Eso es una locura. Ojalá tu cliente no lea eso porque te guinda de las que te conté.
    Usa get_query_var() y un loop para obtener el valor que solicitas en la variable:
    [code]<?php

    Si estoy de acuerdo que es una locura y no lo más dinámico que se dice, por eso estoy buscando ayuda 🙂

    Metacortex, gracias por el codigo, pero como dices, esta bueno entenderlo y poderlo aplicar cada vez que uno quiera.

    Te pido un ultimo favor: podrias explicar un poco de que van estas dos primeras lineas?

    $esto = get_query_var(‘cat’);
    foreach((get_the_category()) as $categoria)

    Antes de preguntarte de nuevo estuve husmeando en el Codex pero la verdad que no me aclaró mucho lo que dice:
    http://codex.wordpress.org/Function_Reference/get_query_var

    Saludos y de nuevo muchas gracias (luego cuento como lo apliqué)

  • #33031

    [quote]Se puede hacer que cada categoria tenga su category-xxx.php y alli poner a mano la opcion child-of, ya que conocemos de antemano las categoria a mostrar, pero esto limitaria a los clientes para crear una nueva categoria, ta que no va a poder crear una pagina .php y modificar esto, no?[/quote]
    Eso es una locura. Ojalá tu cliente no lea eso porque te guinda de las que te conté.
    Usa get_query_var() y un loop para obtener el valor que solicitas en la variable:
    [code]<?php
    $esto = get_query_var(‘cat’);
    foreach((get_the_category()) as $categoria) {
    if($categoria->cat_ID == $esto)
    $categoria_actual = $categoria->cat_ID;
    }
    ?>[/code]
    Eso te dará el ID de la categoría en la que te encuentres en ese momento.

    Finalmente y basandome con la ayuda de arriba use este codigo en Archive.php para saber en que categoria estaba y con el pedir las categorias child de esta

    Con este código me queda en la variable $nocat el id de la categoría actual de los post actuales
    Vale aclarar que aún sigo buscando de donde sale el valor de la variable que pasa la función get_query_var(‘cat’) osea el cat.
    He buscado información en el codex y en la web pero no me queda claro de donde sale ese parámetro, también he visto que usan otro por ejemplo ‘paged’

    Si alguien nos quiere ilustrar o poner un link con buena info, se agradece..

    saludos
    Gracias por la ayuda

  • #33226

    metacortex
    Participante

    Me alegra que finalmente hayas podido resolver el problema.

    No todo está en la documentación. A veces es necesario ver el mismo sistema de archivos para averiguar de dónde vienen las funciones. Una buena manera es buscando desde tu editor de texto: “get_query_var” > “buscar en todos los archivos”. Otra forma es dirigiéndote a la referencia de los archivos de WordPress:

    http://phpxref.com/xref/wordpress/

    Y las referencias de funciones dentro del sistema de archivo:

    http://phpxref.com/xref/wordpress/_functions/index.html

  • #33227

    metacortex
    Participante

    Por ejemplo, [b]get_query var[/b] se encuentra presente en estos archivos

    http://phpxref.com/xref/wordpress/_functions/get_query_var.html

    Puedes notar que arriba dice “Defined at…”. Eso significa que la función está creada en el archivo que se indica. Luego vienen lo archivos donde la función es utilizada una y otra vez, lo cual representan buenos ejemplos para practicar.

    Puedes buscar tutoriales, manuales, referencias y mucho más en la web, pero en realidad no encontrarás mejor documentación de WordPress que en sus mismos archivos.

El foro ‘General WordPress.org’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest