在Wordpress中,如何让子页面使用它的页面模板?

时间:2013-09-10 06:24:57

标签: wordpress

我有一个带有slug / en / work /的子页面,我想使用slug找到的页面模板。我已经上传了page-work.php和page-en-work.php,但是当我导航到页面时,没有使用它们。我究竟做错了什么?提前谢谢!

1 个答案:

答案 0 :(得分:1)

查看以下链接

http://codex.wordpress.org/Function_Reference/get_template_part

<?php while ( have_posts() ) : the_post(); ?>
  <?php get_template_part( 'content', 'page' ); ?>
  <?php comments_template( '', true ); ?>
<?php endwhile; // end of the loop. ?>

在自定义页面模板(“my_child.php”)上包含如下文件:

<?php while ( have_posts() ) : the_post(); ?>
  <?php get_template_part( 'content', 'my_child' ); ?>
<?php endwhile; // end of the loop. ?>

现在你可以在其他页面上包含get_template_part,如下所示:

 <?php

    global $wp_query;

    // is Page a parent page
    if ( $post->post_parent == 0 ) {

        // on a parent page, get child pages
        $pages = get_pages( 'hierarchical=0&parent=' . $post->ID );

        // loop through child pages
        foreach ( $pages as $post ){

            setup_postdata( $post );

            // get the template name for the child page
            $template_name = get_post_meta( $post->ID, '_wp_page_template', true );
            $template_name = ( 'default' == $template_name ) ? 'page.php' : $template_name;

            // default page template_part content-page.php
            $slug = 'page';

            // check if the slug exists for the child page
            if ( locate_template( 'content-' . basename( $template_name ) , $load, $require_once ) != '' ) {
                $slug = pathinfo( $template_name, PATHINFO_FILENAME );
            }

            // load the content template for the child page
            get_template_part( 'content', $slug );
        }
    }
    ?>