Crear una lista de paginas hijas o subpaginas

Inicio Foros WordPress Programación Crear una lista de paginas hijas o subpaginas

Este debate contiene 19 respuestas, tiene 3 mensajes y lo actualizó  marulo hace 5 años, 1 mes.

  • Autor
    Publicaciones
  • #68373

    marulo
    Participante

    Hola

    Si alguien me pudiera ayudar en esto ya que yo no he podido lograrlo.

    Bueno lo que quiero hacer es lo siguiente:

    Quiero crear una lista aleaoria de 5 subpaginas de una pagina “X”, por ejemplo:

    Tengo las paginas (padre) A – B – C – D – F – …

    En la pagina “C” tengo las subpaginas (hijas) 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – … (regularmente ire agregando nuevas subpaginas)

    Ahora en la pagina “A” quiero mostrar una lista de las subpaginas de “C”

    Lista de subpaginas de “C”

    sub1

    sub6

    sub15

    sub2

    sub9

    Por el motivo de que ire agregando nuevas subpaginas de “C” necesito que se muestren aleatoriamente, lo he intentado, pero solo he podido hacer que se muestre la pagina(padre) seguida de las subpaginas(hijas) siguiendo los codex en wordpress.org de wp_list_pages y get_pages, pero no es lo que necesito

    Espero haberme explicado bien. Si alguien me puede ayudar le estaria muy agradecido

  • #68375

    LGrusin
    Miembro

    Bueno, la teoría no parece complicada:
    1 – Guardar la lista de subpáginas de C
    2 – Extraer aleatoriamente 5 subpáginas de C (funciones rand o array_rand)
    3 – Pasarle a get_pages el ID o slug de la página C y la lista de subpáginas aleatorias a incluir obtenida anteriormente

    ¿El código? Cuestión de inspiración… 😉

    Un saludo

  • #68382

    marulo
    Participante

    Creo que ya lo solucione. este código me esta funcionando

    <ul>
    <?php
    $parent = 295;
    $args = array(
    ‘orderby’ => ‘rand’,
    ‘child_of’ => $parent,
    ‘numberposts’ => ‘5’,
    ‘post_type’ => ‘page’,
    ‘post_status’ => ‘publish’
    );
    $rand_pages = get_pages($args);
    foreach($rand_pages as $post) :
    ?>
    <li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>

    pero no me salen aleatoriamente cada vez que entro a la web! seguiré trabajandole haber si lo soluciono

  • #68400

    LGrusin
    Miembro

    No existen los argumentos numberposts y orderby. Se trataba de pasarle los IDs de las subpáginas aleatorias a include. Pero ahora que lo pienso creo que include se refiere a páginas no a subpáginas.

    Puedes hacer una prueba con IDs de subpáginas, si funciona, entonces buscamos un código adecuado.

    Un saludo

  • #68417

    marulo
    Participante

    Bien al parecer con este código me funciona mejor, cada ves que actualizo se reorganizan aleatoriamente y solo me muestra las subpaginas

    <ul>
    <?php
    $args = array(
    ‘sort_column’ => ‘rand’,
    ‘child_of’ => 295,
    ‘title_li’ => __(”),
    ‘post_type’ => ‘page’,
    ‘post_status’ => ‘publish’);
    wp_list_pages( $args );?>
    </ul>

    pero me falta que solo se muestren 5  subpaginas de C

  • #68422

    LGrusin
    Miembro

    No sabía que sort_column permitía rand, si así parece más fácil…

    Has probado con esto:
    <ul>
    <?php
    $parent = 295;
    $args = array(
    ‘sort_column’ => ‘rand’,
    ‘child_of’ => $parent,
    ‘number’ => ’5′,
    ‘post_type’ => ‘page’,
    ‘post_status’ => ‘publish’
    );
    $rand_pages = get_pages($args);
    foreach($rand_pages as $post) :
    ?>
    <li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>

    Un saludo

  • #68425

    marulo
    Participante

    hay un inconveniente con “number” solo me aparecen “2” subpaginas aunque se halla indicado “5” y por ejemplo lo cambio a “15” a veces me salen “5”, “4” o “3” subpaginas xD incluso nada

  • #68448

    LGrusin
    Miembro

    Entonces eso de rand no va bien. Prueba sin el rand a ver si muestra 5 subpáginas

  • #68461

    marulo
    Participante

    Cambiando el ‘sort_column’ => ‘rand’ por ‘sort_column’ => ‘post_title’ del codigo, no me aparecen ninguna de las subpagina, no aparece nada.

    Con este si me muestra 5 subpaginas al parecer correctamente

    <?php
    $parent = 295;
    $args = array(
    ‘title_li’ => __(”),
    ‘number’ => ‘5’,
    ‘child_of’ => $parent,
    ‘post_type’ => ‘page’,
    ‘post_status’ => ‘publish’
    );
    wp_list_pages($args);
    ?>
    <li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>

    Aunque wp_list_pages supuetamente no tiene “number” me aparecen siempre 5 paginas, pero aun no aleatoriamente

  • #68464

    LGrusin
    Miembro

    Prueba esto y me dices que tal te ha ido:
    <?php
    $parent = 295;

    $args=array(‘child_of’ => $parent);
    $pages = get_pages($args);
    if ($pages) {
    $pageids = array();
    foreach ($pages as $page) {
    $pageids[]= $page->ID;
    }

    $random = array_rand($pageids,5);
    foreach($random as $key => $value)
    {
    $pagerand[] = $pageids[$value];
    }

    $args=array(‘title_li’ => ”, ‘include’ => implode(“,”, $pagerand) );
    wp_list_pages($args);
    }
    ?>

    Si copias directamente del Foro recuerda cambiar las comillas, son diferentes a las que se muestran.

    Un saludo

  • #68471

    marulo
    Participante

    me funciona genial, solo un pequeño inconveniente me aparece la ultima entrada publicada, es decir las 5 subpaginas + la entrada

    pero de resto bien, 5 subpaginas aleatorias perfecto, solo con ese inconveniente.

  • #68473

    LGrusin
    Miembro

    ¿En qué archivo estás poniendo el código?

    Saludos

  • #68478

    marulo
    Participante

    en una plantilla nueva de “page” llamada “portal_page.php”

  • #68493

    LGrusin
    Miembro

    Lo que quiero decir es, ¿que otro código contiene ese archivo?. El código de las subpáginas no afecta al resto del código que contenga ese archivo, después de mostrar las subpáginas hará lo que le digas a continuación.

    Si te refieres a que en la misma lista de subpáginas pone una entrada pues, no debería, revisa bien el código, igual algo se te escapa.

    Un saludo

  • #68498

    marulo
    Participante

    por supuesto el problema era que aun tenia al final del codigo “<li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>” y no me habia dado cuenta, simplemente lo quite y asunto arreglado.

    Va genial todo =)

    Muchas gracias por todo

  • #68536

    LGrusin
    Miembro

    Me alegro de que haya funcionado, aunque a decir verdad no sé cual es la idea de mostrar subpáginas aleatorias… 😉

    Un saludo

  • #68540

    marulo
    Participante

    Jeje si es que a veces me gusta complicarme un poco las cosas y aveces escapan de mis capacidades ^^

    Muchas gracias nuevamente!! =D

  • #72759

    macrintosh
    Participante

    Hola yo use este codigo para que funcione


    $parent);
    $pages = get_pages($args);
    if ($pages) {
    $pageids = array();
    foreach ($pages as $page) {
    $pageids[]= $page->ID;
    }

    $random = array_rand($pageids,50);
    foreach($random as $key => $value)
    {
    $pagerand[] = $pageids[$value];
    }

    $args=array('title_li' => ',', 'include' => implode(',', $pagerand) );
    wp_list_pages($args);
    }
    ?>

    Pero, ¿como debo hacer si deseo que no sean aleatorias, sino listadas?
    y ¿si pongo 50, no solo me carga las paginas subordinadas, sino todas las del sitio?

    Aguardo respuesta.

  • #72760

    macrintosh
    Participante

    Para mi es todo un logro.
    Les dejo el código que me funcionó para lo que pedía arriba. Solo borré unas líneas.
    Arriba solicitaba:
    1) listarlas y que no sean aleatorias
    2) que aparezcan todas y SOLO las subordinadas a esa página Superior.


    $parent);
    $pages = get_pages($args);
    if ($pages) {
    $pageids = 50;
    wp_list_pages($args);
    }
    ?>

    Saludos.
    Muy Buen Blog.

  • #72761

    marulo
    Participante

    Es normal que te cargue todas las del sitio si no has indicado la pagina padre.

    Si lo que quieres es listas las sub-paginas o paginas hijas de una pagina, consulta en el codex de wordpress, aquí >> http://codex.wordpress.org/Template_Tags/wp_list_pages#List_Sub-Pages <<, si es lo que buscabas ps bueno hay lo tienes.

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Centro de preferencias de privacidad

Cookies imprescindibles

Se usan para saber si ya aceptaste nuestras políticas, si ya estás suscrito a nuestra newsletter, para reconocer el estado de tu sesión si la tuvieses y para servir más rápidos los contenidos.

No se captura IPs ni siquiera para el servicio de Analytics así que tu visita es privada.

JSESSIONID, _cfuid, wpSGCachePypass, mailerlite, gdpr, gawp
mailerlite, _cfuid

Cookies de terceros

Usamos cookies de terceros con servicios, también garantes de tu privacidad, que analizan tus usos de navegación para que podamos mejorar los contenidos, si ya estás suscrito al boletín y los elementos compartidos en redes sociales y el formulario de comentarios.

1P_JAR, APISID, CONSENT, HPSID, NID, SAPISID, SID, SIDCC, SSID, disqus_unique, disqusauth
disqus_unique, disqusauth
1P_JAR, APISID, CONSENT, HPSID, NID, SAPISID, SID, SIDCC, SSID

Pin It on Pinterest

Ir al contenido