Mostrar extractos de páginas inferiores

Seguro que te ha pasado más de una vez, que creas una estructura jerárquica de páginas en la que la página superior o madre en realidad no es más que un texto, que en realidad no lleva a ninguna parte. Por ejemplo, haces una página llamada «Servicios» de la que cuelgan como subpáginas «Diseño» y «Formación«, pero en «Servicios» no hay nada, es una sola estructura de navegación.

Lo que queda fatal es, en estos casos, que alguien haga clic en la página superior y le lleve a una publicación vacía, sin contenido, teniendo que volver a navegar por el menú para acceder a «algo».

Un modo de evitar este fallo de usabilidad es que el menú no enlace a nada como ya expliqué, pero si queremos darle una vuelta de tuerca y ofrece algo ¿qué mejor que un listado de las subpáginas, con un extracto que muestre su contenido?.

Para conseguirlo debes editar el loop del archivo ‘page.php‘ de tu tema con este código:

<? $pageChildren = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<? if ( $pageChildren ) : foreach ( $pageChildren as $pageChild ) : setup_postdata( $pageChild ); ?>
<!-- loop stuff here -->
<? endforeach; endif; ?>

Pero si tienes páginas que si tengan contenido entonces tendrías que añadirle un condicional más para que no muestre títulos y extractos de subpáginas en ese caso, de este modo:

<? if (is_page('3')) { } else { // if its page 3 then show nothing ?>
<? $pageChildren = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ".$post->ID." AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); ?>
<? if ( $pageChildren ) : foreach ( $pageChildren as $pageChild ) : setup_postdata( $pageChild ); ?>
<!-- loop stuff here -->
<? endforeach; endif; } ?>

Ahora bien, la opción más segura será siempre crear una plantilla de página personalizada cuyo loop tenga el primer código y elijas esa plantilla para tus páginas «madre».

Estupendo truco de The WordPress Guru

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(3 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

5 comentarios en “Mostrar extractos de páginas inferiores”

  1. Hola Fernando me parece muy acertada la explicación de este post, quisiera aportar otra forma de hacerlo y es creando un campo personalizado de "extracto" para las páginas, muy parecido a como lo tienen los post, luego llamamos mediante el slug de la página para obtener el ID y mostrar los campos de contenido de esas subpaginas

    post_title;

    echo get_post_meta($page_id, 'extracto', true);

    ?>

    Saludos

  2. Hola Fernando me parece muy acertada la explicación de este post, quisiera aportar otra forma de hacerlo y es creando un campo personalizado de «extracto» para las páginas, muy parecido a como lo tienen los post, luego llamamos mediante el slug de la página para obtener el ID y mostrar los campos de contenido de esas subpaginas

    post_title;

    echo get_post_meta($page_id, ‘extracto’, true);

    ?>

    Saludos

  3. Upss.. algo del código se cortó.

    <?php
    $page_id = get_page_id_by_slug('slug');
    echo get_page($page_id)->post_title;
    echo get_post_meta($page_id, 'extracto', true);
    ?>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido