第一件事,永远不要使用query_posts
, 它会覆盖主查询,并可能导致不必要的副作用。使用WP_Query
相反
_wp_page_template
是一个post元键,因此我们需要做的第一件事是为每个页面加载存储在该键中的值,使用get_post_meta
. 这将为我们提供文件名,然后我们可以尝试加载它。
$this_page = get_queried_object_id();
$child_pages = new WP_Query(
array(
\'post_type\'=>\'page\',
\'posts_per_page\' => -1,
\'post_parent\' => $this_page,
\'orderby\' => \'menu_order\',
\'order\' => \'ASC\'
)
);
if( $child_pages->have_posts() ){
while( $child_pages->have_posts() ){
$child_pages->the_post();
// get the filename stored in _wp_page_template
$template = get_post_meta( get_the_ID(), \'_wp_page_template\', true );
// load the file if it exists
locate_template( $template, true, false );
}
// restore the global $post after secondary queries
wp_reset_postdata();
}