单页WordPress主题-使用页面模板

时间:2014-08-22 作者:Derrick Workman

我迷路了,时间很晚了,我整晚都在谷歌上搜索。这就是我遇到的问题。我正在尝试使用wordpress“pages”创建一个单页网站。我最初是如何设置主题的,有几个ex的页面模板(“page-contact.php、page-gallery.php、page-map.php等”)。每个页面模板都使用不同的元框进行自定义,相应的页面模板调用这些元框并创建页面。这部分很好,各个页面都显示得很好,但是当我尝试将所有页面查询到一个页面时,这就是我遇到的问题。

到目前为止,我能够显示所有的页面,但只有一个模板,这样我的页面就不能正确地发布其自定义元和自定义模板文件。我已经附上了下面的代码,我想知道是否有方法将变量调用到get\\u template\\u部分(\'page\',$template\\u name\\u of\\u page),以显示每个页面的正确模板。

<?php get_header(); ?>
<?php           
$args = array (
    \'post_type\'                => \'page\',
    \'post_parent\'            => \'29\',
    \'orderby\'                => \'menu_order\',
    \'order\'                  => \'ASC\',
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {    
        $query->the_post();    
        get_template_part(\'page\', \'countdown\');
    }
} else {

}   
wp_reset_postdata();    

?>
<?php get_footer(); ?>
TEMPLATE HIERARCHY

网站的登录页-希望拉取所有页面并在此处显示它们及其单独的模板

登录页-主页。php(上面有一段代码)

公文包-页面公文包。php(登录页的子级-在模板文件中调用自定义元框)

  • 映射-页面映射(登录页的子级)
  • 联系人-页面联系人(登录页的子级)
    2 个回复
    最合适的回答,由SO网友:Derrick Workman 整理而成

    我想我似乎也在做我想做的事。感谢@Milo为我指明了正确的方向!正如您在下面看到的,我使用了get\\u page\\u template\\u slug();和str\\u replace()筛选每页使用的模板。

    有人能证实这是一个可行的选择吗?

    $args = array (
        \'post_type\'                => \'page\',
        \'post_parent\'            => \'29\',
        \'orderby\'                => \'menu_order\',
        \'order\'                  => \'ASC\',
    );
    
    $query = new WP_Query( $args );
    
    
    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
    
            $query->the_post();
            $tn = get_page_template_slug( $post_id );
            $word = array("page-", ".php",\' \');
            $template = str_replace($word,\'\',$tn);
    
            get_template_part(\'page\', $template);
        }
    } else {
    
    }
    

    SO网友:Milople Inc

    您可以为整个网站创建一个模板,并可以在不同的页面中调用不同的页面内容<div> 使用此代码:

    <?php
     $page_id = 47;
     $page_data = get_page( $page_id );
     echo $page_data->post_content ;
     ?>
    

    结束

    相关推荐

    Featured posts and the loop

    我正在尝试在索引中添加一个框。php在何处显示最新的3篇特色帖子。根据this tutorial, 我已将以下内容添加到functions.php:add_theme_support( \'featured-content\', array( \'filter\' => \'magdeleine_get_featured_posts\', \'max_posts\' => 3, ) ); function magdeleine