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

https://www.kinaweb.es/como-mostrar-todas-las-paginas-secundarias-de-una-pagina-principal-de-wordpress/

 

Articulo : 851 - Veces Leidas
Compartir Articulo:
×

¡Apóyame suscribiéndote a mi canal!

Tutoriales sobre Diseño Web