Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Cómo mostrar una lista de páginas secundarias de una página principal en WordPress

Hace poco, uno de nuestros lectores nos preguntó cómo mostrar páginas secundarias de una página de WordPress.

Si organiza su sitio web WordPress con páginas principales y secundarias, es posible que desee mostrar sus páginas secundarias o subpáginas en la página principal. También es posible que desee mostrar la página principal en cada subpágina para facilitar la navegación.

En este artículo, le mostraremos cómo mostrar fácilmente un anuncio / catálogo / ficha de una página padre en WordPress.

Displaying a list of child pages for a parent page in WordPress

¿Cuándo debe mostrar una lista de páginas secundarias?

WordPress viene con dos tipos de contenido por defecto: entradas y páginas. Las entradas son el contenido del blog y suelen organizarse con categorías y etiquetas.

Las páginas son contenidos puntuales o independientes que son perennes, como una página “Acerca de nosotros” o “Contacto”, por ejemplo.

En WordPress, las páginas pueden ser jerárquicas, lo que significa que puede organizarlas con páginas padre e hijas.

Por ejemplo, puede crear una página de producto con páginas secundarias para características, precios y soporte.

Para crear una página hija, siga nuestra guía sobre cómo crear una página hija en WordPress.

Una vez creadas las páginas principales y secundarias, es posible que desee incluir un anuncio / catálogo / ficha de las páginas secundarias en la página principal.

Ahora, una manera fácil de hacer esto es editando manualmente la página principal y añadir una lista de enlaces de forma individual.

Manually add child page links

Sin embargo, tendrá que editar manualmente la página principal cada vez que añada o borre una página secundaria. ¿No sería mejor poder crear una página hija y que apareciera automáticamente enlazada a la página madre?

Dicho esto, veamos otras formas dinámicas de mostrar rápidamente un anuncio / catálogo / ficha en la página principal de WordPress. Te mostraremos tres métodos, para que puedas elegir el que más te convenga:

Método 1. Mostrar páginas secundarias en la página principal usando un plugin

Este método es más sencillo y recomendable para todos los usuarios.

En primer lugar, debe instalar y activar el plugin Page-list. Para más detalles, consulte nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.

Una vez activado, debe editar la página principal y añadir el siguiente shortcode donde desee mostrar el anuncio / catálogo / fichas.

[subpáginas]

Ahora puede guardar su página y obtener una vista previa en una nueva pestaña del navegador. Observará que se muestra una lista con viñetas de todas las páginas secundarias.

Plain list of child page links

Si quieres, puedes añadir algo de CSS personalizado para cambiar la apariencia de la lista. Aquí tienes algunos ejemplos de CSS que puedes utilizar como punto de partida.

ul.page-list.subpages-page-list {
    list-style: none;
    list-style-type: none;
    background-color: #eee;
    border: 1px solid #CCC;
    padding: 20px;
}

Después de aplicar su CSS personalizado, puede obtener una vista previa de la página principal. Así es como se ve en nuestro sitio web WordPress de prueba.

Child pages list with CSS

El plugin proporciona un montón de parámetros shortcode que le permiten establecer la profundidad, excluir páginas, número de elementos, y mucho más. Para más detalles, consulte la página del plugin para la documentación detallada.

Método 2. Listar páginas hijas de una página padre usando código

Este método es un poco avanzado y requiere que añadas código a tu sitio web WordPress. Si no lo has hecho antes, echa un vistazo a nuestra guía sobre cómo copiar y pegar código en WordPress.

Para añadir páginas secundarias a una página principal, debe añadir el siguiente código en un plugin de fragmentos de código o en el archivo functions. php de su tema:

function wpb_list_child_pages() { 
 
global $post; 
 
if ( is_page() && $post->post_parent )
 
    $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
else
    $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );
 
if ( $childpages ) {
 
    $string = '<ul class="wpb_page_list">' . $childpages . '</ul>';
}
 
return $string;
 
}
 
add_shortcode('wpb_childpages', 'wpb_list_child_pages');

En WPBeginner, siempre recomendamos añadir código en WordPress con el plugin WPCode.

WPCode le permite añadir fácilmente código personalizado sin necesidad de editar los archivos de su tema, por lo que no tiene que preocuparse de romper su sitio.

WPCode

Primero, necesitas instalar y activar el plugin gratuito WPCode. Para obtener instrucciones paso a paso, consulte esta guía sobre cómo instalar un plugin de WordPress.

Una vez activado el plugin, vaya a Fragmentos de código ” Añadir fragmento desde su escritorio de WordPress. Desde allí, pase el cursor sobre la opción “Añadir su código personalizado (nuevo fragmento)” y haga clic en el botón “Usar fragmento”.

Add a new custom code snippet in WPCode

A continuación, añada un título a su fragmento de código y pegue el código anterior en el cuadro “Vista previa del código”.

No olvide elegir “Fragmento de código PHP” como tipo de código en el menú desplegable de la derecha.

Paste code into WPCode plugin

Después, sólo tiene que cambiar el conmutador de “Inactivo” a “Activo” y hacer clic en el botón “Guardar fragmento de código” situado en la parte superior de la página.

Activate and save your custom code snippet

Este código primero marca / comprueba si una página tiene un padre o si la propia página es un padre.

Si es una página padre, muestra las páginas hijas asociadas a ella. Si es una página hija, muestra todas las páginas hijas de su página padre.

Por último, si se trata sólo de una página sin página hija o padre, entonces el código simplemente no hará nada. En la última línea del código, hemos añadido un shortcode, para que pueda mostrar fácilmente las páginas hijas sin modificar las plantillas de sus páginas.

Para mostrar páginas secundarias, simplemente añada el siguiente shortcode en una página o widget de texto en la barra lateral:

[wpb_childpages]

No olvide guardar los cambios y obtener una vista previa en una pestaña del navegador. Así es como aparece en nuestro sitio de prueba.

Plain link list

Ahora puedes personalizar el estilo de este anuncio / catálogo / ficha de página usando un poco de CSS personalizado. Aquí tienes algunos ejemplos de código CSS que puedes utilizar como punto de partida.

ul.wpb_page_list {
    list-style: none;
    list-style-type: none;
    background-color: #eee;
    border: 1px solid #CCC;
    padding: 20px;
}

Método 3. Mostrar dinámicamente páginas secundarias sin shortcode

Usar shortcodes es conveniente, pero el problema con ellos es que tendrás que añadir shortcodes en todas las páginas que tengan páginas padre o hijas.

Puede que acabes teniendo shortcodes en muchas páginas, y a veces incluso te olvides de añadirlos.

Un mejor enfoque sería editar el archivo de plantilla de página en su tema, para que pueda mostrar automáticamente las páginas secundarias.

Para ello, debe editar la plantilla de la página principal .php o crear una plantilla de página personalizada en su tema.

Puedes editar tu tema principal, pero esos cambios desaparecerán si cambias o actualizas tu tema. Por eso es mejor que crees un tema hijo y realices los cambios en él.

En el archivo de plantilla de su página, debe añadir esta línea de código donde desee mostrar las páginas secundarias.

<?php wpb_list_child_pages(); ?>

Eso es todo. El tema detectará automáticamente las páginas secundarias y las mostrará en una lista.

Puede personalizar los estilos con CSS y formato. Este es un ejemplo de cómo el sitio web de OptinMonster muestra la página principal y las subpáginas:

OptinMonster Sub Pages Example

Esperamos que este artículo te haya ayudado a crear un anuncio / catálogo / ficha para una página principal en WordPress. Puede que también quieras ver nuestra guía sobre las páginas más importantes a crear en un nuevo sitio web en WordPress, y nuestra comparativa de los mejores editores de arrastrar y soltar páginas en WordPress para crear estructuras / disposiciones / diseño / plantillas personalizadas sin código.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso editorial .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

El último kit de herramientas de WordPress

Obtenga acceso GRATUITO a nuestro kit de herramientas - una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Reader Interactions

80 comentariosDeja una respuesta

  1. Philip

    Hello this works, except that the parent is also displaying, how do i show just the child pages, thanks

    • WPBeginner Support

      The simplest method for what it sounds like you’re wanting would be to not have content on the parent page and only have your content in the child pages.

      Administrador

  2. Sachit Shori

    Thank you so much. You saved me.

    • WPBeginner Support

      You’re welcome :)

      Administrador

  3. Emmanuel Husseni

    Hello Wpbeginner,

    Please how can i sort all the child page alphabetically on the parent page. I’ve follow all step but the sub pages are showing randomly on the parent page.

    Waiting for response. ….Thanks

    • WPBeginner Support

      You would change the two instances of menu_order in our code to be: post_title

      Administrador

  4. Iyke O.

    How do I make the list collapsible on sidebar.

  5. Stacie

    Easy to follow and did the job. Thanks so much for sharing!

    • WPBeginner Support

      You’re welcome, glad our content could be helpful :)

      Administrador

  6. Aaro

    Can I assign a css class to this function? So that when I make css changes to ul elements it wouldn’t affect other ul’s on the site.
    Or any other simple solution for this?

    • WPBeginner Support

      You could add your CSS class in the ul section of the function :)

      Administrador

  7. Keshav Murthy

    Hi, WPB Team,

    Thank you so much for this Snippet and the tutorial.

    It saved my ton of time and helped me too.

    With Warm Regards,
    Keshav Murthy

    • WPBeginner Support

      Glad our tutorial could help :)

      Administrador

  8. Gary Granai

    I installed the plugin code snippets in wordpress 4.9.8

    I copied the code on https://www.wpbeginner.com/wp-tutorials/how-to-display-a-list-of-child-pages-for-a-parent-page-in-wordpress/#respond and added it to a new snippet in code snippets.

    I made a page and then a page which was given the attribute of having the first page as the parent page.

    The child parent relationship is shown in the list of pages in the attributes drop down.

    When I open the parent page I see nothing that shows a child page.

    I then tried using the functions.php page.

    I added the code copied from https://www.wpbeginner.com/wp-tutorials/how-to-display-a-list-of-child-pages-for-a-parent-page-in-wordpress/#respond to the bottom of the code on the functions page.

    When I open the parent page, I it does not display. What displays is an error message saying there is unexpected code.

    I restored the functions.php page to its original statuc.

    What changes must I make to what I have tried to do.

    • WPBeginner Support

      Hi Gary,

      Make sure that you publish the child page before testing the code. Also carefully copy the code again to make sure that you are not copying the numbers or any unexpected characters.

      Administrador

  9. Itika

    I have a question. I have added sub pages in parent page but when I am opening the site in mobile and clicking on parent page it opens the empty parent page. To view the drop down sub pages one have to hold the button of parent page. How can I fix it. I don’t want that empty page to open. I want that if we touch on parent page it opens the drop down menu.
    Please suggest how to do it.

Deja tu comentario

Gracias por elegir dejar un comentario. Tenga en cuenta que todos los comentarios son moderados de acuerdo con nuestros política de comentarios, y su dirección de correo electrónico NO será publicada. Por favor, NO utilice palabras clave en el campo de nombre. Tengamos una conversación personal y significativa.