假设有两个分类A,B,分类目录显示页分别为category-A,category-B,两个页面均显示该分类的文章列表,要使同一篇文章在两个分类页中打开后调用不同的模板single-A,single-B。
(1) 分别在category-A与category-B显示文章列表的地方,在列表标题的标签中添加一个flag值
如在category-A中加入
<?php
$var='A'; //var的值可以自定义,在a标签中将var的值赋值给flag变量
?>
<a href="<?php the_permalink();?>&flag=<?php echo $var?>" rel="bookmark" title="<?php the_title_attribute();?>" >
<?php the_title();?>
</a>
在category-B中加入
<?php
$var='B'; //var的值可以自定义,在a标签中将var的值赋值给flag变量
?>
<a href="<?php the_permalink();?>&flag=<?php echo $var?>" rel="bookmark" title="<?php the_title_attribute();?>" >
<?php tagtext();?>
</a>
(2)在single.php中获取flag的值进行判断
<?php
$f=$_GET['flag'];//获取flag的值并赋值给f
?>
<?php
if($f=='A'){
get_template_part('single-cat-A' );//如果f=A,则调用A模板
}
else if($f=='B'||$f==null){
get_template_part('single-cat-B' );//如果f=A或空,则调用B模板
}
?>