使用page.php覆盖自定义页面模板,然后使用get_template_part()调用自定义页面模板

时间:2018-04-09 08:20:02

标签: php wordpress templates

我想将page.php用于所有页面(所以我不必在所有页面模板中重复使用get_header()和#section-top),然后使用get_template_part()根据页面模板调用内容。现在我有我的page.php和两个内容部分,一个设置为标准,'content-flexible.php'(如果没有设置页面模板),另一个用于显示帖子的内容posts.php ”。

这是我的page.php文件:

<?php get_header(); ?>
<main id="page-main" role="main" class="main">
        <?php 

        ?>
    <section id="section-top" class="header cf">        
            <h2><?php the_title(); ?></h2>
    </section>
    <div id="content-wrap" class="wrap cf">
            <div id="inner-content" class="wrap cf">
            <?php 
                //Use page-templates for content
                if( $post->post_parent !== 0 ) {
                    get_template_part('page-parts/content', 'posts');
                } else {
                get_template_part('page-parts/content', 'flexible');
                }
            ?>
            </div>  <!-- /inner-content -->
    </div> <!-- end /content-wrap -->   
</main>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

现在else语句有效(调用content-flixible.php),但是当我将页面模板设置为“帖子页面”时,它只使用content-posts.php,因为它遵循WordPress正常层次结构。我怎样才能覆盖这个,所以我总是使用'​​page.php'来根据管理页面中使用的页面模板来交换内容?

0 个答案:

没有答案