2009-06-25 66 views
0

我有一个页面模板,我想列出每个子页面(但不是他们的子页面)的条目,并根据页面名称和自定义字段显示一些内容。我将如何做到这一点?Wordpress检索张贴子女

使用wordpress 2.8

回答

3

下面是我在页面模板中最后做到的。

$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

我在我的网站做类似的事情。您需要定义自己的页面模板。无论如何,在你的模板目录中创建一个文件并将其粘贴到那里 - 开始。然后编辑您的父页面,然后在属性框中为模板选择父页面。

本示例将包含每个子页面的完整内容,但您可以根据自己的需要进行自定义。

<?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(); ?>