更新:这里有多个选项。
您只需将图像和子页面标题作为常规内容插入父页面(这是最简单的解决方案)即可page.php
(或类似的,取决于主题)主题文件夹中的文件。您可以创建一个新的页面模板文件用作父页面模板。您可以使用短代码。我个人认为,使用短代码是最好的选择,因为它与主题无关。因此,如果将来更改主题,此功能将继续工作。
已经有多个现有插件可以显示子页面,它们将完全满足您的需要。
然而,我想提供一个简单的代码来实现这一点。您应该创建一个新插件或在functions.php
在此之后,可以插入短代码[show_childpages]
在父页面中,如果此页面有子页面,则会列出它们<请记住,这只是一个最低限度的设置:
function show_childpages_shortcode() {
// a shortcode should just return the content not echo html
// so we start to create an object, and on the end we return it
// if we dont do this the shortcode will be displayed in the top of the content
ob_start();
// only start if we are on a single page
if ( is_page() ) {
// get the ID of the current (parent) page
$current_page_id = get_the_ID();
// get all the children of the current page
$child_pages = get_pages( array(
\'child_of\' => $current_page_id,
) );
// start only if we have some childpages
if ($child_pages) {
// if we have some children, display a list wrapper
echo \'<ul class="childpages">\';
// loop trough each childpage
foreach ($child_pages as $child_page) {
$page_id = $child_page->ID; // get the ID of the childpage
$page_link = get_permalink( $page_id ); // returns the link to childpage
$page_img = get_the_post_thumbnail( $page_id, \'medium\' ); // returns the featured image <img> element
$page_title = $child_page->post_title; // returns the title of the child page
?>
<li class="childpage-<?php echo $page_id; ?>">
<a href="<?php echo $page_link; ?>">
<h4><?php echo $page_title; ?></h4>
<?php echo $page_img; //display featured image ?>
</a>
</li>
<?php
}//END foreach ($child_pages as $child_page)
echo \'</ul>\';
}//END if ($child_pages)
}//END if (is_page())
// return the object
return ob_get_clean();
}
add_shortcode( \'show_childpages\', \'show_childpages_shortcode\' );
这将创建一个无序列表,每个子页面都是一个列表项,带有链接、标题和图像。
您可以使用普通CSS为列表设置样式。