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.
¿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.
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.
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.
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.
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”.
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.
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.
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.
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:
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.
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
Sachit Shori
Thank you so much. You saved me.
WPBeginner Support
You’re welcome
Administrador
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
Iyke O.
How do I make the list collapsible on sidebar.
WPBeginner Support
To make it collapsable you could use an accordion plugin such as one of the ones from our article here: https://www.wpbeginner.com/showcase/best-wordpress-accordion-plugins/
Administrador
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
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
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
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
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.