编辑:
好吧,我无法用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> </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"
标记不起作用。我不想把所有不同的部分模板写在一个和 相同的页面模板。有没有办法打电话给不同的 你在页面上的页面模板呢?
答案 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';
}
?>