在循环内的单个页面上获取不同的页面模板

时间:2013-05-04 19:10:50

标签: php html wordpress

编辑: 好吧,我无法用is_page条件来处理它。所以我写了下面的代码 - 运作良好,但它不是很好。有什么建议吗?

<?php $args = array( 'post_type' => 'page' );?>  <!-- get only pages -->

<?php query_posts($args); ?>

<?php while (have_posts()) : the_post(); ?>  <!-- loop with pages starts -->

<?php $id = get_the_ID(); ?>  <!-- get post/pageID --> 

<?php   if ($id == 5) : include( get_stylesheet_directory() . '/page_special.php' );

        else: include( get_stylesheet_directory() . '/page_all.php' );

        endif; 
?>
  

我试图用单页面布局制作一个wordpress主题。   因此我将我的page.php编辑成了这个,以获得不同的标题&amp;   页面内容

<?php $args = array( 'post_type' => 'page' ); ?>
<?php query_posts($args); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<section id="<?php the_title(); ?>">

<header class="entry-header">
<h1 class="entry-title"><a name="<?php the_title(); ?>"></a>&nbsp;</h1>
</header> 
<div class="entry-content"> <?php the_content(); ?> </div>

</section>

<?php endwhile; endif; ?>
     

现在我想插入if条件

     

is_page ('about') -> get_page_template ('about')

     

或类似的东西,但Wordpress Codex说,在循环内   "is_page"标记不起作用。

     

我不想把所有不同的部分模板写在一个和   相同的页面模板。有没有办法打电话给不同的   你在页面上的页面模板呢?

3 个答案:

答案 0 :(得分:0)

if ( is_page( 'about' ) ) {

    $page_template =  dirname( __FILE__ ) . '/about_template.php';
}

这应该有效。

答案 1 :(得分:0)

在主题的functions.php文件中使用template_redirect功能,例如:

function so16377966_template_redirect()
{
    if( is_page( 'about' ) )
    {
        include( get_template_directory() . '/about_template.php' );
        exit();
    }
}
add_action( 'template_redirect', 'so16377966_template_redirect' );

答案 2 :(得分:0)

您可以在循环中尝试此操作

<?php 
 // get the permalink that is http://www.somesite.com/about/
 $page = get_permalink();
     // extract will give you this Array ( [dirname] => http://www.somesite.com/about [basename] => about [filename] => about )
 extract(pathinfo($page));
// now you can use $filename to test if you are in the right page   
if ($filename == 'about') {
$page_template =  dirname( __FILE__ ) . '/about_template.php';
}
   ?>

提取物如何工作 http://php.net/manual/en/function.extract.php