web-dev-qa-db-fra.com

Afficher des pages enfants sur une page parent et une page enfant à l'aide des miniatures en vedette

Comment pourrais-je afficher une liste de mes pages enfants en utilisant des images en vedette sur une page parent ainsi que sur la page enfant de leurs frères et sœurs?

Par exemple, si ma page parent s'appelle "Musique", mon contenu principal sera associé à des vignettes de pages enfants en bas.

J'aimerais que des vignettes avec des liens permanents vers d'autres pages enfants soient insérées dans la page Musique parent affichée sur toutes les pages de musique pour enfants.

Est-ce possible?

Merci

1
David

Utilisez get_ancestors pour obtenir la page parent, puis les enfants de ce parent.

$ancestors = array();
$ancestors = get_ancestors($post->ID,'page');
$parent = (!empty($ancestors)) ? array_pop($ancestors) : $post->ID;
if (!empty($parent)) {
  $kids = new WP_Query(
    array(
      'post_parent'=>$parent,
      'post_type' => 'page',
      'ignore_sticky_posts' => true
    )
  );
  if ($kids->have_posts()) {
    while ($kids->have_posts()) {
      $kids->the_post();
      echo '<a href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_post_thumbnail().'</a>';
    }
  }
}
1
s_ha_dum

C’est la meilleure solution qui a fonctionné jusqu’à présent pour moi, qui est une combinaison de plusieurs solutions trouvées en ligne,

Avec ce code, vous pouvez afficher une image sélectionnée de la sous-page et un titre avec un lien d'ancrage.

Également ce travail pour la page Sub et Child aussi.

<!--Child Page Thumbnails Start-->
<?php 
  $subs = new WP_Query( 
    array( 
      'post_parent' => $post->ID, 
      'post_type' => 'page', 
      'meta_key' => '_thumbnail_id' 
    )
  );
if( $subs->have_posts() ) : 
  while( $subs->have_posts() ) : 
    $subs->the_post();
    echo '<article class="span_8 col clr-margin products-thumb"> <a href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_post_thumbnail().'</a>'.'<br/><h2><a href="'.get_permalink().'">'.get_the_title().'</a></h2></article>';
  endwhile; 
endif; 
wp_reset_postdata(); ?>
<!--Child Page Thumbnails End-->
0
TechYogi