我有一个带有front-page.php的单页网站,其中应包含我的所有自定义模板(每个模板都是一个静态页面)。
<?php get_header();
$args = array(
'sort_order' => 'ASC',
'sort_column' => 'menu_order',
'post_type' => 'page',
'post_status' => 'publish'
);
$pages = get_pages($args);
foreach ($pages as $page_data) {
$content = apply_filters('the_content', $page_data->post_content);
?>
<?php echo "$content" ?>
<?php
}
get_footer();
?>
使用“the_content”时,它仅引用后端中文本的内容,但不会引用模板本身中我的the_content标记周围的所有标记,例如:
<?
/*
Template Name: Features
*/
the_post()
?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<section>
<? the_content() ?>
</section>
<?php endif; ?>
在这种情况下,周围的标签部分未被选中,也不会出现在标记中。
我需要在front-page.php中更改哪些内容才能选择整个模板,而不仅仅是模板?
提前非常感谢!
答案 0 :(得分:0)
您可以将每个页面模板的循环部分放在单独的模板部件中,并使用get_template_part
在首页上动态调用部件:
foreach ( $pages as $page_data ) {
$template = get_post_meta( $page_data->ID, '_wp_page_template', true ); // get page template path
$template = substr( $template, 0, -4 ); // chop off .php from the string
get_template_part( 'loop', $template );
}
对于模板“功能”(文件名features.php
),它会查找loop-features.php
等。后备将为loop.php
。