General WordPress.org

Foro WordPress » WordPress » General WordPress.org

Menu dinamico en base a categorias (12 mensajes)

Acerca de este hilo

Tags

Etiquetas:

  1. katarsis20032002

    4.0
    Antiguedad: Jul 2009
    Mensajes: 70

    offline

    Publicado hace 2 años
    #

    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.

    Nota: no se si busque bien pero no encontre nada que me ayudara en el foro, ni tampoco en la pagina Ayuda Wordpress.

    El tema es el siguiente:

    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

    me interesa hacer un menu que muestre la categoria Padre y 1 nivel de hijos osea PRODUCTOS y PROD1 y PROD2 o
    PROD2 y subPROD2_a subPROD2_b ,etc

    el tema es que no se como hacer para hacer para informar, usando wp_list_categories() y child_of, pasar la categoria padre

    Espero haber sido claro y seguramente sea facil de lograr

    Grracias desde ya , como siempre

    Katarsis
    Comenzando un nuevo camino
  2. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

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

    "Sólo sé, que no sé nada"
  3. katarsis20032002

    4.0
    Antiguedad: Jul 2009
    Mensajes: 70

    offline

    Publicado hace 2 años
    #

    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

    Katarsis
    Comenzando un nuevo camino
  4. 23r9i0

    5.0
    Antiguedad: Dic 2008
    Mensajes: 316

    offline

    Publicado hace 2 años
    #

    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!!

    "Sólo sé, que no sé nada"
  5. katarsis20032002

    4.0
    Antiguedad: Jul 2009
    Mensajes: 70

    offline

    Publicado hace 2 años
    #

    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

    Katarsis
    Comenzando un nuevo camino
  6. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 2 años
    #

    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?

    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:

    <?php
    $esto = get_query_var('cat');
    foreach((get_the_category()) as $categoria) {
    if($categoria->cat_ID == $esto)
    $categoria_actual = $categoria->cat_ID;
    }
    ?>

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

  7. Sabogal

    5.0
    Antiguedad: Dic 2008
    Mensajes: 254

    offline

    Publicado hace 2 años
    #

    ¿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!

  8. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 2 años
    #

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

  9. katarsis20032002

    4.0
    Antiguedad: Jul 2009
    Mensajes: 70

    offline

    Publicado hace 2 años
    #

    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?

    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é)

    Katarsis
    Comenzando un nuevo camino
  10. katarsis20032002

    4.0
    Antiguedad: Jul 2009
    Mensajes: 70

    offline

    Publicado hace 2 años
    #

    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?

    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:
    <?php
    $esto = get_query_var('cat');
    foreach((get_the_category()) as $categoria) {
    if($categoria->cat_ID == $esto)
    $categoria_actual = $categoria->cat_ID;
    }
    ?>

    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

    < ?php $cat = get_query_var('cat');? >

             < ?php $nocat = wp_list_categories('echo=0&amp;child_of=' . $cat . '&amp;hide_empty=0&amp;title_li=' );
    ? >

    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

    Katarsis
    Comenzando un nuevo camino
  11. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 2 años
    #

    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

  12. metacortex

    5.0
    Antiguedad: Jun 2009
    Mensajes: 193

    offline

    Publicado hace 2 años
    #

    Por ejemplo, get_query var 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.

Responder

Debes Identificarte para publicar.

Foro WordPress » WordPress » General WordPress.org