WordPress: Listar todas las páginas secundarias de una página principal
Fecha Publicación:
05 de Julio de 2022
Fecha Modificación:
05 de Julio de 2022
if ( !function_exists( 'listar_sub_paginas_2' ) )
{
function listar_sub_paginas_2()
{
$pages = get_pages(array('child_of' => get_the_ID(), 'parent' => get_the_ID(), 'sort_order' => 'ASC', 'sort_column' => 'menu_order'));
$sortida = '<div class="container">';
$sortida .= '<div class="row">';
foreach ($pages as $page):
$sortida .= '<div class="col-sm-12 col-md-3 col-lg-3 mb-5">';
$sortida .= '<a href=' . $page->post_name . ' title=' . esc_attr($page->post_title) . '\>';
$sortida .= '<div class="card h-100 mi_estilo_card_por_columna">';
$sortida .= '<div class="card-img-top">';
$sortida .= get_the_post_thumbnail($page->ID, "full",'style=height:170px;');
$sortida .= '</div>';
$sortida .= '<div class="card-body">';
//$sortida .= "<hr>";
$sortida .= '<h5 class="card-title mi_estilo_card_title">' . $page->post_title . '</h5>';
$sortida .= '<p class="card-text mi_estilo_card_text"></p>';
$sortida .= '<p class="card-text"><small class="text-muted"></small></p>';
$sortida .= '</div>';
$sortida .= '</div>';
$sortida .= "</a>";
$sortida .= '</div>';
endforeach;
$sortida .= '</div>';
$sortida .= '</div>';
return $sortida;
}
}
add_shortcode('listar_sub_paginas_2', 'listar_sub_paginas_2');
Estructura de las Páginas:
- Servicios
- Servicio A
- Servicio A1
- Servicio A2
- Servicio B
- Servicio C
Nota:
Referencia Función get_pages()
https://developer.wordpress.org/reference/functions/get_pages/
Si en la función get_pages no se agrega el parámetro 'parent' => get_the_ID() , se mostrará las páginas hijas y las subpágina de las hijas.
Ejemplo:
SIN 'parent' => get_the_ID() Mostrará las páginas hijas y las subpáginas de las hijas:
- Servicio A
- Servicio A1
- Servicio A2
- Servicio B
- Servicio C
CON 'parent' => get_the_ID() Mostrará solo las páginas hijas:
- Servicio A
- Servicio B
- Servicio C
Refeencia
Articulo : 851 - Veces Leidas