2009-06-25 8 views
0

J'ai un modèle de page où je veux lister les entrées pour chaque page enfant (mais pas leurs pages enfants), et afficher certaines choses basées sur le nom de la page, et les champs personnalisés. Comment ferais-je cela? Utilisation de wordpress 2.8Wordpress récupération Enfants de poste

Répondre

3

Voici comment je l'ai fait à la fin dans mon modèle de page.

$pages =& get_children('post_type=page&orderby=title&order=ASC&post_parent='.get_the_ID()); 

if (empty($pages)) { 
    // no attachments here 
} else { 
    foreach ($pages as $attachment_id => $attachment) { 
     <? 
     <h3><? echo get_the_title($attachment_id); ?></h3> 
     <p><a href="<? echo get_permalink($attachment_id)?>">View more</a></p> 
     <? 
    } 
} 
0

Je fais quelque chose de similaire sur mon site. Vous devez définir votre propre modèle de page. Créez un fichier dans votre répertoire de modèles et collez-le ici - pour commencer, de toute façon. Modifiez ensuite votre page parente et sélectionnez Parent Page for Template dans la zone Attributes.

Cet exemple inclura le contenu complet de chaque page enfant, mais vous pouvez le personnaliser comme vous le souhaitez.

<?php 
/* 
Template Name: Parent Page 
*/ 
?> 
<?php 
/** 
* Loop over all sub-pages and include their content 
*/ 
the_post(); 
$children = get_pages("child_of=" . $post->ID); 
$childIDs = array(); 
foreach($children as $c) { 
    $childIDs[] = (int)$c->ID; 
} 

query_posts(array('post_type'=>'page','post__in'=>$childIDs, 'orderby'=>'menu_order')); 

get_header(); 
?> 
<div id="content"> 
    <?php if (have_posts()) : while (have_posts()) : the_post(); $loopcounter++; ?> 

     <div <?php if (function_exists('post_class')) post_class(); ?>> 

      <div class="entry entry-<?php echo $postCount ;?>"> 

       <div class="entrytitle_wrap"> 
        <?php if (!is_page()) : ?> 
         <div class="entrydate"> 
          <div class="dateMonth"> 
           <?php the_time('M');?> 
          </div> 
          <div class="dateDay"> 
           <?php the_time('j'); ?> 
          </div> 
         </div> 
        <?php endif; ?> 

        <div class="entrytitle"> 
        <?php if ($loopcounter==1):?> 
         <h1><a href="<?php the_permalink() ?>" rel="bookmark" title="Link to <?php the_title(); ?>"><?php the_title(); ?></a></h1> 
        <?php else : ?> 
         <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2> 
        <?php endif; ?> 
        </div> 

       </div> 


       <div class="entrybody"> 
        <?php if (is_archive() || is_search()) : ?> 
         <?php the_excerpt(); _e('<p><a href="'.get_permalink().'">Continue reading about '); the_title(); _e('</a></p>'); ?> 
        <?php else : ?> 
         <?php the_content('Read the rest of this entry &raquo;'); ?> 
         <?php the_tags('<p>Tags: ', ', ', '</p>'); ?> 
        <?php endif; ?>   
       </div> 

       <div class="entrymeta"> 
        <div class="postinfo"> 
         <?php edit_post_link('Edit', '', ''); ?>     
        </div> 
       </div> 


       <?php if ($loopcounter == 1 && !is_singular()) { include (TEMPLATEPATH . '/ad_middle.php'); } ?>     

      </div> 

    </div> 

    <?php endwhile; ?> 

    <?php if (!is_singular()): ?>   
     <div id="nav-global" class="navigation"> 
      <div class="nav-previous"> 
      <?php 
       next_posts_link('&laquo; Previous entries'); 
       echo '&nbsp;'; 
       previous_posts_link('Next entries &raquo;'); 
      ?> 
      </div> 
     </div> 

    <?php endif; ?> 

    <?php else : ?> 

     <h2>Not Found</h2> 
     <div class="entrybody">Sorry, but you are looking for something that isn't here.</div> 
    <?php endif; ?> 

</div> 

<?php get_footer(); ?> 
Questions connexes