我有一个页面模板,我想列出每个子页面的条目(但不是它们的子页面),并根据页面名称和自定义字段显示一些内容。我该怎么做?
使用wordpress 2.8
答案 0 :(得分: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>
<?
}
}
答案 1 :(得分: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 »'); ?>
<?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('« Previous entries');
echo ' ';
previous_posts_link('Next entries »');
?>
</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(); ?>