如何为WP设置不同分类使用不同的文章列表模板
不同分类页用不同模板之文章详情页:
在Wordpress主题的文章详情页页:single.php之类,备份原有主循环,然后这么做。
-
$post = $wp_query->post;
-
if (in_category('1')) {
-
include(TEMPLATEPATH.'/single-01.php');
-
} elseif (in_category('2')) {
-
include(TEMPLATEPATH.'/single-02.php');
-
} else {
-
include(TEMPLATEPATH.'/single-default.php');
-
} ?>
当然,也可以这样做:
-
-
add_filter('single_template', create_function('$t', 'foreach((array) get_the_category() as $cat) { if (file_exists(TEMPLATEPATH . "/single-{$cat->term_id}.php")) return TEMPLATEPATH . "/single-{$cat->term_id}.php"; } return $t;'));
-
?>
不同分类页用不同模板之分类页面
如果想为Wordpress众多文章分类中的某一类使用特定的文章列表模板,也很简单,例如:
-
function getnewscatid($slug){
-
-
$icat=get_category_by_slug($slug);
-
$icat_links=get_category_link($icat->term_id);
-
$icat_name=$icat->name;
-
$cat_id=$icat->term_id;
-
return $cat_id;
-
}
-
-
$newscatid=getnewscatid('my-news');
-
define('NEWSCATID',$newscatid);
上面的实例是获取分类slug为my-news的分类的ID,并将之定义为常量NEWSCATID,然后自定义一个适用于这个分类的文章列表页面模
板template_news.php,在category.php或者archive.php之类的页面你会找到输出文章列表的主循环,在主循环的外层
加上:
-
if(in_category(NEWSCATID)){include('template_news.php');}else{
-
-
}
阅读(2315) | 评论(0) | 转发(0) |